Docker
和 Docker Compose
是相辅相成的工具,它们共同提供了一个强大的容器化解决方案。Docker
提供了容器化的基础功能,而 Docker Compose
则提供了更高级的编排和管理能力,使得部署和管理多个容器变得更加容易和高效。
- Docker:专注于单个容器的管理和运行,提供基本的容器化功能,适用于单个服务的开发和部署。
- Docker Compose:专注于多容器应用程序的管理和运行,通过一个配置文件定义多个服务及其依赖关系。
Docker 官网 : Docker 文档
使用 : [笔记] 多层 Nginx反向代理与Docker容器化前端应用部署 : 客户端 -> 本地 Nginx -> Docker 内的 Nginx -> 前端应用 - 掘金
配置 SSL 证书 : [笔记] CentOS7 + Nginx 环境下,安装使用 Let‘s Encrypt 免费 SSL 证书 (自动续签) - 掘金
一. 安装 Docker
1. 设置存储库
# 1.安装yum-utils
sudo yum install -y yum-utils
# 2.设置稳定的存储库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 下面是官网的, 上面使用阿里云的 国内比较快
# https://download.docker.com/linux/centos/docker-ce.repo
2. 安装 Docker 引擎和容器
-
安装最新版
# 1. 直接安装最新docker版本 sudo yum -y install docker-ce docker-ce-cli containerd.io # 2. 安装完成后查看版本 docker -v
-
安装不同版本
# 如果想安装不同版本 # 1.列出可用版本 yum list docker-ce --showduplicates | sort -r # 2.安装指定版本 sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io 如: sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
3. 启动 Docker
# 启动docker
systemctl start docker
# 设置开机自启动
systemctl enable docker
# 查看状态
systemctl status docker
4. 配置阿里云镜像加速器
# 创建或编辑 Docker 配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<your_mirror>.mirror.aliyuncs.com"]
}
EOF
# 重启 Docker 服务
sudo systemctl restart docker
5. 设置docker的默认存储路径
- 停止 Docker 服务
sudo systemctl stop docker
- 修改 Docker 配置文件
Docker
的配置文件通常位于 /etc/docker/daemon.json
。如果该文件不存在,可以创建一个新的文件。
-
创建或编辑 daemon.json
sudo nano /etc/docker/daemon.json
-
添加或修改存储目录配置
在
daemon.json
文件中,添加或修改data-root
配置项,指定新的存储目录。例如,如果你想将存储目录改为/home/luchangqiu/docker/data/
,可以这样配置:{ "data-root": "/home/luchangqiu/docker/data/" }
-
创建新的存储目录
确保新的存储目录存在,并且Docker
有权限访问该目录:
sudo mkdir -p /home/luchangqiu/docker/data
sudo chown root:root /home/luchangqiu/docker/data
sudo chmod 755 /home/luchangqiu/docker/data
-
移动现有数据(可选)
如果你已经有现有的
Docker
数据,可以将其移动到新的存储目录。这一步是可选的,但如果你希望保留现有数据,这是必要的sudo rsync -aqxP /var/lib/docker/ /home/luchangqiu/docker/data/
-
启动 Docker 服务
sudo systemctl start docker
- 验证配置
docker info | grep 'Docker Root Dir'
6. 卸载 Docker
# 停止正在运行的 Docker 服务
sudo systemctl stop docker
# 卸载旧版本的 Docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 卸载 Docker CE
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除 Docker 相关文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/systemd/system/docker.service.d
# 如果自定义了 docker 存储路径
sudo rm -rf /home/luchangqiu/docker/data
# 清理残留的依赖包
sudo yum autoremove
二. 安装 Docker-compose
1. 查看版本
github 地址 : Releases · docker/compose
# 获取最新版本的标签
LATEST_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
# 打印获取到的版本标签
echo "Latest version: $LATEST_VERSION"
2. 下载 Docker Compose 的最新版本
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
3. 设置可执行权限
sudo chmod +x /usr/local/bin/docker-compose
4. 验证安装
docker-compose --version
5. 使用
[笔记] 多层 Nginx反向代理与Docker容器化前端应用部署 : 客户端 -> 本地 Nginx -> Docker 内的 Nginx -> 前端应用 - 掘金
三. Docker 命令
1. 基本命令
# 查看 Docker 版本
docker --version
# 启动 Docker 服务
sudo systemctl start docker
# 停止 Docker 服务
sudo systemctl stop docker
# 查看 Docker 服务状态
sudo systemctl status docker
# 重启 Docker 服务
sudo systemctl restart docker
# 查看 Docker 信息
docker info
2. 镜像管理
# 拉取镜像
docker pull <image_name>:<tag>
# 搜索镜像
docker search [image_name]
# 列出所有本地镜像
docker images
# 删除镜像
docker rmi <image_id>
# 强制删除镜像(即使有容器在使用)
docker rmi -f <image_id>
3. 容器管理
# 运行容器
docker run -it --name <container_name> <image_name>:<tag>
# 运行容器并绑定端口
docker run -p <host_port>:<container_port> -d <image_name>:<tag>
# 运行容器并挂载卷
docker run -v <host_path>:<container_path> -d <image_name>:<tag>
# 运行容器并设置环境变量
docker run -e <key>=<value> -d <image_name>:<tag>
# 运行容器并设置名称
docker run --name <container_name> -d <image_name>:<tag>
# 列出所有正在运行的容器
docker ps
# 列出所有容器(包括停止的)
docker ps -a
# 查看容器日志
docker logs <container_id>
# 查看容器详细信息
docker inspect <container_id>
# 进入正在运行的容器
docker exec -it <container_id> /bin/bash
# 停止容器
docker stop <container_id>
# 启动已停止的容器
docker start <container_id>
# 重启容器
docker restart <container_id>
# 删除容器
docker rm <container_id>
# 强制删除容器(即使正在运行)
docker rm -f <container_id>
3. 网络管理
# 查看容器的网络信息
docker network inspect <network_name>
# 创建网络
docker network create <network_name>
# 连接容器到网络
docker network connect <network_name> <container_id>
# 断开容器与网络的连接
docker network disconnect <network_name> <container_id>
# 删除网络
docker network rm <network_name>
4. 资源管理
# 查看系统事件
docker events
# 查看系统资源使用情况
docker stats
# 清理未使用的资源
docker system prune
# 清理未使用的镜像
docker image prune
# 清理未使用的容器
docker container prune
# 清理未使用的网络
docker network prune
# 清理未使用的卷
docker volume prune
# 查看卷列表
docker volume ls
# 删除卷
docker volume rm <volume_name>
5. Docker Compose 命令
# 查看 Docker Compose 版本
docker-compose --version
# 使用 Docker Compose 启动服务
docker-compose up
# 在后台启动 Docker Compose 服务
docker-compose up -d
# 停止 Docker Compose 服务
docker-compose down
# 查看 Docker Compose 服务状态
docker-compose ps
# 查看 Docker Compose 服务日志
docker-compose logs
# 重建 Docker Compose 服务
docker-compose build
# 重启 Docker Compose 服务
docker-compose restart