1. 首页 > 服务器系统 > Ubuntu

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

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:8:30-17:30,节假日休息