哈喽,大家好,我是左手python!
安装 Docker
Docker 是一个开源的容器化平台,允许开发者打包、分发和运行应用程序。安装 Docker 是使用容器化技术的第一步。本节将详细介绍在 Linux 系统中安装 Docker 的步骤。
在 Ubuntu/Debian 系统中安装 Docker
在 Ubuntu/Debian 系统中安装 Docker,可以使用以下命令:
# 更新包索引
sudo apt update
# 安装必要的依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 源
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
# 安装 Docker
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
sudo docker run hello-world
在 CentOS/RHEL 系统中安装 Docker
在 CentOS/RHEL 系统中安装 Docker,可以使用以下命令:
# 安装必要的依赖
sudo yum install -y yum-utils
# 添加 Docker 源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动 Docker 服务
sudo systemctl start docker
# 设置 Docker 服务开机启动
sudo systemctl enable docker
# 验证安装
sudo docker run hello-world
在 Fedora 系统中安装 Docker
在 Fedora 系统中安装 Docker,可以使用以下命令:
# 安装 Docker
sudo dnf install docker
# 启动 Docker 服务
sudo systemctl start docker
# 设置 Docker 服务开机启动
sudo systemctl enable docker
# 验证安装
sudo docker run hello-world
初始化配置
安装完成 Docker 后,可能需要进行一些初始化配置,以满足具体的需求。
配置 Docker 镜像加速
Docker 镜像加速可以提高拉取镜像的速度。以下是配置 Docker 镜像加速的步骤:
# 创建或编辑 Docker 配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://your-mirror-address"]
}
EOF
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
配置 Docker 存储驱动
Docker 的存储驱动决定了如何管理容器的文件系统。默认情况下,Docker 使用 overlay2
存储驱动,但可以根据需要进行调整。
# 创建或编辑 Docker 配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2"
}
EOF
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
配置 Docker 网络
Docker 提供了多种网络模式,包括 bridge
、host
和 none
。默认情况下,Docker 使用 bridge
网络模式。
# 创建或编辑 Docker 配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"bridge": "none"
}
EOF
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker 容器的基本操作
拉取镜像
拉取镜像是使用 Docker 的第一步。以下命令可以拉取一个镜像:
# 拉取最新版本的 Ubuntu 镜像
docker pull ubuntu:latest
运行容器
运行容器可以使用以下命令:
# 运行一个 Ubuntu 容器
docker run -it ubuntu:latest /bin/bash
列出容器
列出所有容器可以使用以下命令:
# 列出所有容器
docker ps -a
停止容器
停止容器可以使用以下命令:
# 停止一个容器
docker stop container_name
删除容器
删除容器可以使用以下命令:
# 删除一个容器
docker rm container_name
提交容器
提交容器可以将容器的更改保存为一个新的镜像:
# 提交容器
docker commit container_name image_name
打包镜像
打包镜像可以将镜像保存为一个 tar 文件:
# 打包镜像
docker save image_name -o image_name.tar
加载镜像
加载镜像可以将 tar 文件恢复为 Docker 镜像:
# 加载镜像
docker load -i image_name.tar
Docker 容器的高级操作
容器的资源限制
Docker 提供了多种方式来限制容器的资源使用,包括 CPU、内存等。
# 限制容器的 CPU 使用
docker run -it --cpuset-cpus 0-1 ubuntu:latest /bin/bash
# 限制容器的内存使用
docker run -it -m 512m ubuntu:latest /bin/bash
容器的网络配置
Docker 提供了多种网络配置选项,包括自定义网络、端口映射等。
# 创建一个自定义网络
docker network create my_network
# 运行容器并连接到自定义网络
docker run -it --net my_network ubuntu:latest /bin/bash
# 配置端口映射
docker run -it -p 8080:80 nginx:latest
容器的卷挂载
Docker 支持将主机目录挂载到容器中,实现数据持久化。
# 挂载主机目录到容器
docker run -it -v /host/path:/container/path ubuntu:latest /bin/bash
容器的环境变量
Docker 支持通过环境变量配置容器的行为。
# 设置环境变量
docker run -it -e MY_VAR=value ubuntu:latest /bin/bash
Docker 的优化与安全
优化 Docker 的性能
Docker 的性能优化可以从多个方面入手,包括选择合适的存储驱动、优化内存使用、优化网络配置等。
Docker 的安全配置
Docker 的安全配置是确保容器化环境安全的重要环节。以下是一些常见的安全配置:
# 禁用 Docker 的远程 API
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"api-cors-header": "",
"tcp-default-bind": "127.0.0.1:2375"
}
EOF
# 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
审计 Docker 的安全配置
定期审计 Docker 的安全配置可以帮助发现潜在的安全问题。
# 检查 Docker 的配置文件
sudo docker container run -it --rm docker/security:latest check
Docker 的故障排查
常见问题
Docker 在使用过程中可能会遇到一些常见问题,包括镜像拉取失败、容器启动失败、网络连接问题等。
日志查看
Docker 提供了详细的日志功能,可以帮助排查问题。
# 查看容器日志
docker logs container_name
# 持续查看容器日志
docker logs -f container_name
调试容器
Docker 提供了多种调试工具,可以帮助开发者调试容器。
# 进入运行中的容器
docker exec -it container_name /bin/bash
# 查看容器的资源使用情况
docker stats container_name