开门见山:
本实践指南将带您走进Docker的世界,从基础的安装和配置开始,逐步深入到如何使用Portainer进行远程可视化管理。无论您是希望在个人项目中尝试Docker,还是在企业环境中寻求更高效的容器管理解决方案,本指南都将为您提供详尽的步骤和实用的技巧。
我们将从环境准备开始,确保您的系统满足Docker的运行要求。接着,我们会引导您加入Docker的官方APT源,以便获取最新的软件包。在安装过程中,我们还会提供国内源的选项,帮助您加速下载速度,提高安装效率。
安装完成后,我们将通过运行一个简单的Python容器来验证Docker的安装状态。随后,您将学习到如何使用Docker的基本指令来管理容器,包括查看、启动、停止和删除容器。此外,我们还会介绍如何设置容器的自启动策略,确保您的服务在遇到问题时能够自动恢复。
为了提升管理体验,我们将指导您安装并配置Portainer,让您能够通过一个友好的用户界面来监控和操作Docker容器。我们还会提供如何设置Docker服务开机自启动的指令,确保您的容器环境始终处于就绪状态。
最后,我们会讨论Docker端口映射的重要性,帮助您避免在部署过程中遇到的端口冲突问题。
安装环境
apt update
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
加入 Docker 的 GPG 公钥和 apt 源
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
也可以加入国内源:
curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
安装 Docker CE
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证安装
docker --version
运行第一个容器
为了测试Docker,您可以运行一个简单的容器,比如一个Python容器。在终端输入以下命令:
docker run -it python:3.8 bash
这将下载(如果本地没有)并运行一个Python 3.8的容器,并且启动一个bash shell。
一旦容器运行起来,您可以尝试在容器内部做一些操作,比如运行Python解释器:
python --version
在容器内部,您可以通过输入exit
命令或者使用Ctrl+D
来退出容器
docker 基本指令
您可以使用以下命令来查看当前正在运行的容器:
docker ps
如果您想查看所有容器(包括未运行的),可以使用:
docker ps -a
停止正在运行的容器:
docker stop <容器名称或ID>
删除容器(在删除容器之前,你需要确保容器已经停止运行):
docker rm <容器名称或ID>
启动或重启容器:
docker restart <容器名称或ID>
进入容器内部,进入后可以通过输入exit
命令退出:
docker exec -it portainer /bin/bash
添加 docker 可视化操作
这里使用开源项目 portainer ,
sudo docker run -p 9001:9000 -p 8001:8000 --name portainer_test \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer
通过浏览器访问下面网址,192.168.3.107是 Linux 服务器的 IP 地址:
在界面上注册账号密码:
admin/dockeradmin@314
Docker 服务配置开机启动
- 启动 Docker 服务
sudo systemctl start docker
- 设置开机自启动
sudo systemctl enable docker
- 验证 Docker 服务状态
sudo systemctl status docker
- 要停止 Docker 服务,你可以使用以下命令
sudo systemctl stop docker
容器自启动策略
- 创建容器时指定自启动
当你使用docker run
命令创建容器时,可以添加--restart
标志来设置容器的自启动策略。例如,如果你想让容器在退出时总是重启,可以这样做:
docker run --restart=always -d --name my-container my-image
这里的--name my-container
为你的容器指定了一个名称,my-image
是你的Docker镜像名称。--restart=always
表示无论容器以何种方式退出,Docker都会尝试重新启动它。
- 修改已存在的容器自启动策略
如果容器已经创建,你可以使用docker update
命令来修改其重启策略。例如,要为名为my-container
的容器设置自启动:
docker update --restart=always my-container
这将更新容器的配置,使其在退出时自动重启。
- 取消容器的自启动
如果你想取消容器的自启动策略,可以将其设置为no
:
docker update --restart=no my-container
这将使容器在退出后不再自动重启。
- 查看容器的当前重启策略
你可以使用docker inspect
命令来查看容器的当前重启策略:
docker inspect -f '{{.HostConfig.RestartPolicy}}' my-container
这将输出容器的重启策略,例如always
、on-failure
等。
Docker 的端口映射
如果你已经在同一个服务器上部署了一个网站,并且想要避免端口冲突,你需要确保Docker容器使用的端口不会与网站或其他服务使用的端口冲突。以下是一些步骤和建议来设置Docker命令以避免端口冲突:
-
检查现有服务的端口:首先,你需要确定服务器上已经使用的端口。你可以使用如
netstat
或ss
等工具来查看当前正在使用的端口列表。 -
选择未被使用的端口:在确定了哪些端口已经被使用后,选择两个未被使用的端口用于Portainer。例如,如果9000和8000端口已经被使用,你可以选择9001和8001。
-
修改Docker命令:在Docker命令中,将
-p
参数的值更改为你选择的未被使用的端口。例如:
sudo docker run -p 9001:9000 -p 8001:8000 --name portainer --restart=always ... [其他选项] ... -d portainer/portainer
这个命令将Portainer的9000端口映射到宿主机的9001端口,将8000端口映射到宿主机的8001端口。
开启你的Docker之旅
随着本实践指南的结束,您已经掌握了在核桃派上部署Docker环境,并利用 Portainer 进行高效管理的全部技能。现在,您已经准备好将Docker的强大功能应用到您的项目中,无论是开发、测试还是生产部署。