Ubuntu上安装 Docker及可视化管理工具的详细教程
一、安装Docker
在 Ubuntu 24.04 LTS 上,虽然可以通过 Ubuntu 的官方仓库直接安装 Docker,但是这种方法通常无法获取到最新的 Docker 版本,而且安全更新也可能延迟。因此,推荐从 Docker 的仓库进行安装,确保可以用上最新版本和自动更新。
1、更新软件包并安装必要软件
#更新软件包索引 sudo apt update #安装添加 Docker 仓库所需的前置软件包 sudo apt install apt-transport-https curl
2、导入 Docker 官方 GPG 密钥
由于国内网络限制,Docker官方网站无法被访问,后面采用阿里云的镜像网站为主要源。
将https://download.docker.com/linux/ubuntu/ 修改为https://mirrors.aliyun.com/docker-ce/linux/ubuntu/ 即可。
#阿里云镜像源 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg #官方网站 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
3、添加 Docker 仓库
添加Docker 的阿里云仓库添加到Ubuntu软件源列表
#添加Docker的阿里云仓库到软件源列表 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu/ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #添加Docker的官方仓库到软件源列表 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4、更新软件包列表
#刷新软件包列表,以便系统识别新添加的 Docker 仓库 sudo apt update
5、安装 Docker
#安装Docker 引擎及其相关组件 sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
安装的组件包括:
- docker-ce:Docker Engine。
- docker-ce-cli:用于与 Docker 守护进程通信的命令行工具。
- containerd.io:管理容器生命周期的容器运行时环境。
- docker-buildx-plugin:增强镜像构建功能的 Docker 扩展工具,特别是在多平台构建方面。
- docker-compose-plugin:通过单个 YAML 文件管理多容器 Docker 应用的配置管理插件。
- docker-ce-rootless-extras:用于非 root 用户运行 Docker 容器而提供的一套额外工具集
6、检查 Docker 服务状态
#检查 Docker 的运行状态 sudo systemctl is-active docker
7、运行测试容器
#运行 hello-world 测试容器,验证 Docker 是否安装成功并正常工作 sudo docker run hello-world
8、替换 DockerHub 镜像源
如果拉取 DockerHub 镜像时遇到困难,可以替换为别的镜像。
8.1、使用文本编辑器打开 Docker 的配置文件,如果没有就新建。
sudo vim /etc/docker/daemon.json
8.2、在配置文件中添加或修改registry-mirrors,指定Docker镜像源的URL
{ "registry-mirrors": [ "https://docker.1ms.run", "https://docker.aityp.com" ] }
8.3、保存配置文件并重启 Docker 服务
sudo systemctl daemon-reload sudo systemctl restart docker
8.4、验证配置是否生效
sudo docker info
二、卸载Docker
要从 Ubuntu 24.04 LTS 中卸载 Docker,可以按照以下步骤操作:
1、使用以下命令卸载 Docker 及其相关组件:
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
2、执行以下命令来删除 Docker 创建的目录:
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
完成这些步骤后,Docker 将完全从你的 Ubuntu 24.04 系统中移除。
三、Docker常用命令
- docker run:运行一个新的容器。
- docker ps:列出当前运行的容器。
- docker start:启动一个已经停止的容器
- docker stop:停止一个运行中的容器。
- docker rm:删除一个容器。
- docker images:列出本地镜像。
- docker rmi:删除一个镜像。
- docker exec -it <容器名称> /bin/bash:进入容器内。
- docker logs:查看容器的日志。
- docker inspect:查看容器或镜像的详细信息。
四、安装Portainer可视化工具
1、下载Portainer镜像
sudo docker pull portainer/portainer-ce
2、运行Portainer容器
sudo docker run -d -p 9000:9000 \ --name portainer --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data portainer/portainer-ce
参数 | 参数说明 |
-d | 在后台运行容器。 |
-p 9000:9000 | 将容器的9000端口映射到宿主机的9000端口。 |
--name portainer | 为容器指定一个名称为portainer。 |
--restart always | 如果容器退出,总是自动重启。 |
-v /var/run/docker.sock:/var/run/docker.sock | 将Docker守护进程的Unix套接字挂载到容器中,这允许Portainer直接与Docker守护进程通信。 |
-v portainer_data:/data | 创建一个持久化的数据卷,以保存Portainer的配置数据。 |
portainer/portainer-ce | 指定要运行的Portainer镜像。 |
3、查看portainer是否启动
docker ps
4、浏览器登录验证
浏览器访问 ip:9000 即可,初次登陆时需要设置一个admin账号的密码,输入8位密码创建用户,同时勾选下方的允许匿名选项。
出现如下问题是因为创建用户超时,重启portainer重新创建即可
sudo docker restart portainer
进入portainer页面
五、常见问题处理
1、非 root 用户运行 Docker 命令
默认情况下,只有 root 用户或具有 sudo 权限的用户才能够执行 Docker 命令。如果不加sudo
前缀直接运行docker
命令,系统会报权限错误。
可以运行以下命令将当前登录的用户添加到 docker 组,以便以非 root 用户身份运行 Docker 命令:
sudo usermod -aG docker ${USER}
在这条命令中,${USER}
是一个环境变量,表示当前登录的用户名。执行完这条命令后,需要重启 Ubuntu 系统。重启之后,就可以不需要加sudo
前缀来执行 docker
命令了。
Docker容器运行常用参数详解
1、容器运行示例
在Docker中运行一个容器需要使用docker run
命令,这个命令后面可以跟很多参数来定制容器的行为。以下是一个运行容器示例以及参数详解。
docker run -d --name my-container -p 8080:80 -v /host/data:/container/data --restart=always --env MY_VAR=value --network bridge my-image
- -d:后台运行容器,并返回容器ID;
- --name:为容器指定一个名称;
- -p:指定端口映射,格式为:主机端口:容器端口;
- -v:挂载一个目录或文件;
- --restart:设置容器重启策略,如 always、on-failure等;
- --env:设置环境变量;
- --network:连接容器到一个网络。
2、容器运行参数详解
2.1、镜像名
镜像是 Docker 的核心概念之一,用于创建 Docker 容器。镜像可以从镜像仓库中拉取。运行容器时,必须指定镜像名。
# 运行 Nginx 镜像 docker run nginx:1.19
指定特定版本(标签)的nginx镜像,1.19是版本号;如果不指定版本,Docker 会默认拉取 latest 标签的镜像。
注:latest标签,由于它的字面意思是“最新的”,所以很多时候也容易被误解,其实latest就是个普通标签,不要期望它是最新或最稳定的版本,因为它取决于当时 lastest 标签被关联到的版本。镜像的维护者可能会使用不同的标签策略,因此在生产环境中最好明确指定具体的版本号。它只是个名字,也没有其它附加作用,更不会自动更新。
2.2、容器名(--name)
每个运行的容器都有一个唯一的 ID,但为了方便管理,你可以为容器指定一个易于记忆的名称。这样,在后续操作时,可以直接使用容器名称,而不是容器 ID。
# 容器命名为 my-nginx docker run --name my-nginx nginx
2.3、端口映射(--publish)
端口映射可以通过在运行命令中使用 -p 选项(p小写,全称 --publish)来完成,该选项的语法如下: -p <主机端口>:<容器端口>。端口映射用于将容器内部的端口映射到宿主机的端口,使得外部可以访问容器内运行的服务。
# 将容器的 8080 端口映射到宿主机的 80 端口 docker run -d -p 80:8080 tomcat
2.4、目录映射(--volume)
端口映射可以通过在运行命令中使用 -v 选项(全称 --volume)来完成,该选项的语法如下: -v <主机目录>:<容器目录>。目录映射用于将宿主机的目录挂载到容器内,保留容器中的数据,以便数据可以在宿主机和容器之间共享。
# 将宿主机的 /data 目录挂载到容器的 /app 目录 docker run -d -v /data:/app tomcat
2.5、重启策略 (--restart)
容器的重启策略是指在容器退出时Docker是否应该自动重启容器。目的是为了确保容器应用的高可用性和稳定性,通过设置重启策略,可以在容器出现故障或异常情况时自动重新启动容器,以避免影响业务运行。
# 设置容器在退出时总是重启 docker run -d --restart always tomcat
重启策略有以下几种:
- no:不自动重启。
- on-failure:容器因错误退出(非零退出代码)时重启。可选的重启次数可以通过--restart-max-retries设置。
- always:无论退出状态如何,总是重启容器。
- unless-stopped:容器除非被手动停止,否则总是重启。
2.6、运行模式(--detach)
在Docker中,-d(全称 --detach) 选项用于启动一个分离模式的容器,这意味着容器会在后台运行,不会占用当前的终端会话。
# 后台运行容器 docker run -d tomcat
Docker 提供了多种网络模式,适应不同的网络需求。 常见的网络模式有:
- bridge: 默认模式,Docker 创建一个独立的网络桥接器(bridge),容器通过此桥接器与宿主机和其他容器通信。
- host: 容器直接使用宿主机的网络栈,与宿主机共享网络接口。
- none: 容器没有网络连接,完全隔离。
- container:: 容器与指定的其他容器共享网络栈。
# 以桥接网络模式运行容器 docker run -d --network bridge tomcat
2.8、环境变量(--env)
在 Docker 中,-e(全称 --env)选项用于设置环境变量。环境变量用于向容器传递运行时所需的配置信息。
# 向容器传递一个环境变量 ENV,其值为 production docker run -d -e "ENV=production" tomcat
2.9、特权模式(--privileged)
在Docker中,--privileged=true选项允许容器以特权模式(超级用户权限)运行,从而获得几乎与主机相同的权限。这意味着容器可以访问和控制主机的所有硬件设备、操作系统内核和其他系统资源。
# 赋予容器特权模式 docker run --privileged -d tomcat
以上就是Ubuntu上安装 Docker及可视化管理工具的详细内容,更多相关资料请阅读主机测评网其它文章!
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/ubuntu/8592.html