Docker实操
安装Docker
环境
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo docker run hello-world
解析
1. sudo apt update
更新系统软件包列表
- 作用:
apt是 Ubuntu 系统中用于管理软件包的工具。sudo apt update命令以超级用户权限运行,它的作用是从软件源(也就是配置在/etc/apt/sources.list及其子目录中的源)获取最新的软件包列表信息。这样做能确保后续安装软件时使用的是最新的软件版本信息。
2. sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
安装必要的依赖包
-
sudo apt install:以超级用户权限安装软件包。 -
-y:参数表示在安装过程中遇到确认提示时,自动选择 “是”,避免手动交互。 -
apt-transport-https:用于支持通过 HTTPS 协议从软件源下载软件包。 -
ca-certificates:包含了用于验证 SSL/TLS 证书的 CA(证书颁发机构)证书,确保在通过 HTTPS 下载软件时能验证服务器的身份。 -
curl:一个常用的命令行工具,用于通过多种协议(如 HTTP、HTTPS、FTP 等)传输数据,后续会用它来下载 Docker 的 GPG 密钥。 -
gnupg:用于处理 GPG(GNU Privacy Guard)加密和签名的工具,用于验证下载的软件包的完整性和真实性。 -
lsb-release:用于获取当前系统的发行版信息,后续配置 Docker 软件源时会用到。
3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加 Docker 的官方 GPG 密钥,确保下载的软件包来源可靠
-
curl -fsSL:-
-f:若请求失败,不显示详细的错误信息。 -
-s:静默模式,不显示进度信息。 -
-S:与-s一起使用时,若请求失败会显示错误信息。 -
-L:若服务器返回重定向,会自动跟随重定向。 -
整体作用是从
https://download.docker.com/linux/ubuntu/gpg下载 Docker 的 GPG 密钥。
-
-
|:管道符号,将curl命令的输出作为gpg命令的输入。 -
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg:-
--dearmor:将下载的 ASCII 格式的 GPG 密钥转换为二进制格式。 -
-o /usr/share/keyrings/docker-archive-keyring.gpg:将转换后的密钥保存到/usr/share/keyrings/docker-archive-keyring.gpg文件中。
-
4. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
添加 Docker 软件源
-
echo:用于输出指定的字符串。 -
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable":-
deb:表示这是一个 Debian 格式的软件源。 -
[arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]:指定软件包的架构为amd64,并使用之前下载并保存的 GPG 密钥来验证软件包的签名。 -
https://download.docker.com/linux/ubuntu:Docker 官方的 Ubuntu 软件源地址。 -
$(lsb_release -cs):通过lsb_release -cs命令获取当前 Ubuntu 系统的发行版代号(如focal表示 Ubuntu 20.04),并将其插入到软件源配置中。 -
stable:表示使用稳定版本的 Docker 软件包。
-
-
|:管道符号,将echo命令的输出作为tee命令的输入。 -
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null:-
tee:将输入内容同时输出到标准输出和指定的文件中。 -
/etc/apt/sources.list.d/docker.list:将软件源配置信息保存到该文件中。 -
> /dev/null:将tee命令的标准输出重定向到/dev/null,即丢弃输出信息。
-
5. sudo apt update
- 作用:再次更新软件包列表信息,因为之前添加了 Docker 的软件源,需要重新获取最新的软件包信息。
6.
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
sudo apt install:以超级用户权限安装软件包。 -
docker-ce:Docker 社区版,是 Docker 的免费版本,包含了 Docker 引擎等核心组件。 -
docker-ce-cli:Docker 社区版的命令行工具,用于与 Docker 引擎进行交互。 -
containerd.io:一个容器运行时,是 Docker 引擎的底层依赖组件之一。
7. sudo docker run hello-world
-
sudo docker run:以超级用户权限运行一个 Docker 容器。 -
hello-world:这是一个简单的 Docker 镜像,用于验证 Docker 是否安装成功。运行该镜像后,如果 Docker 安装和配置正确,会输出一段欢迎信息,表明 Docker 可以正常工作。
安装portainer
创建 Portainer 数据卷:
docker volume create portainer_data
运行 Portainer 容器:
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
docker-compose批量创建容器
创建docker-compose.yml
version: '3'
services:
nginx-service:
image: nginx
ports:
- "8080:9090"
volumes:
- /etc/docker/nginx:/etc/nginx
caddy-1:
image: caddy
ports:
- "8081:80"
caddy-2:
image: caddy
ports:
- "8082:80"
caddy-3:
image: caddy
ports:
- "8083:80"
networks:
default:
name: file
执行docker-compose
docker-compose默认执行的是docker-compose.yml文件
docker-compose -f
容器打包成镜像
1.获取容器ID或名称
docker ps -a
2.创建新镜像
docker commit [选项] <容器 ID 或名称> <仓库名称>[:<标签>]
docker commit -m "这是从vs容器创建的新镜像" -a "HYH" vs vsimage:Wise
-m 添加提交信息
-a 添加作者信息
把名为vs的容器创建仓库,仓库名称为vsimage,标签是Wise
3.验证
docker images
4.保存到本地
docker save -o 存放的文件路径 <仓库名称>[:<标签>]
docker save -o /etc/docker/images/vsimage.tar vsimage:Wise
5.加载镜像[镜像仓库不存在时才需要加载]
docker load -i vsimage.tar
编写 Dockerfile 构建新镜像
待学习

浙公网安备 33010602011771号