[笔记] Centos7 安装 Docker 和 Docker Compose 及 Docker 命令大全

DockerDocker Compose 是相辅相成的工具,它们共同提供了一个强大的容器化解决方案。Docker 提供了容器化的基础功能,而 Docker Compose 则提供了更高级的编排和管理能力,使得部署和管理多个容器变得更加容易和高效。

  • Docker:专注于单个容器的管理和运行,提供基本的容器化功能,适用于单个服务的开发和部署。
  • Docker Compose:专注于多容器应用程序的管理和运行,通过一个配置文件定义多个服务及其依赖关系。

Docker 官网 : Docker 文档

使用 : [笔记] 多层 Nginx反向代理与Docker容器化前端应用部署 : 客户端 -> 本地 Nginx -> Docker 内的 Nginx -> 前端应用 - 掘金

配置 SSL 证书 : [笔记] CentOS7 + Nginx 环境下,安装使用 Let's Encrypt 免费 SSL 证书 (自动续签) - 掘金

一. 安装 Docker

1. 设置存储库

powershell 复制代码
# 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 引擎和容器

  • 安装最新版

    powershell 复制代码
    # 1. 直接安装最新docker版本
    sudo yum -y install docker-ce docker-ce-cli containerd.io
    
    # 2. 安装完成后查看版本
    docker -v
  • 安装不同版本

    powershell 复制代码
    # 如果想安装不同版本
    # 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

powershell 复制代码
# 启动docker
systemctl start docker

# 设置开机自启动
systemctl enable docker

# 查看状态
systemctl status docker

4. 配置阿里云镜像加速器

powershell 复制代码
# 创建或编辑 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 服务
powershell 复制代码
sudo systemctl stop docker
  • 修改 Docker 配置文件

Docker配置文件通常位于 /etc/docker/daemon.json。如果该文件不存在,可以创建一个新的文件。

  • 创建或编辑 daemon.json

    powershell 复制代码
    sudo nano /etc/docker/daemon.json
  • 添加或修改存储目录配置

    daemon.json 文件中,添加或修改 data-root 配置项,指定新的存储目录。例如,如果你想将存储目录改为 /home/luchangqiu/docker/data/,可以这样配置:

    yaml 复制代码
    {
      "data-root": "/home/luchangqiu/docker/data/"
    }
  • 创建新的存储目录

    确保新的存储目录存在,并且 Docker 有权限访问该目录:

bash 复制代码
  sudo mkdir -p /home/luchangqiu/docker/data
  sudo chown root:root /home/luchangqiu/docker/data
  sudo chmod 755 /home/luchangqiu/docker/data
  • 移动现有数据(可选)

    如果你已经有现有的 Docker 数据,可以将其移动到新的存储目录。这一步是可选的,但如果你希望保留现有数据,这是必要的

    powershell 复制代码
    sudo rsync -aqxP /var/lib/docker/ /home/luchangqiu/docker/data/
  • 启动 Docker 服务

powershell 复制代码
sudo systemctl start docker
  • 验证配置
powershell 复制代码
docker info | grep 'Docker Root Dir'

6. 卸载 Docker

powershell 复制代码
# 停止正在运行的 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

powershell 复制代码
# 获取最新版本的标签
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 的最新版本

powershell 复制代码
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

3. 设置可执行权限

powershell 复制代码
sudo chmod +x /usr/local/bin/docker-compose

4. 验证安装

powershell 复制代码
docker-compose --version

5. 使用

[笔记] 多层 Nginx反向代理与Docker容器化前端应用部署 : 客户端 -> 本地 Nginx -> Docker 内的 Nginx -> 前端应用 - 掘金

三. Docker 命令

1. 基本命令

bash 复制代码
# 查看 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. 镜像管理

bash 复制代码
# 拉取镜像
docker pull <image_name>:<tag>

# 搜索镜像
docker search [image_name]

# 列出所有本地镜像
docker images

# 删除镜像
docker rmi <image_id>

# 强制删除镜像(即使有容器在使用)
docker rmi -f <image_id>

3. 容器管理

bash 复制代码
# 运行容器
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. 网络管理

bash 复制代码
# 查看容器的网络信息
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. 资源管理

bash 复制代码
# 查看系统事件
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 命令

bash 复制代码
# 查看 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
相关推荐
我是谁的程序员7 分钟前
Flutter图片加载优化,自动缓存大小
后端
疯狂的程序猴9 分钟前
FlutterWeb实战:02-加载体验优化
后端
调试人生的显微镜11 分钟前
Flutter性能优化实践 —— UI篇
后端
用户77853718369617 分钟前
揭秘AI自动化框架Browser-use(四):Browser-use记忆模块技术解析
人工智能·后端
一个热爱生活的普通人23 分钟前
如何使用 Benchmark 编写高效的性能测试
后端·go
GoGeekBaird23 分钟前
基于 CAMEL-AI 🦉OWL框架的股票分析智能体
后端·github
东百牧码人25 分钟前
开源项目推荐:MasterNeverDown.LeetCode,刷题必备的C#利器
后端
SimonKing25 分钟前
JDK 24 新特性解析:更安全、更高效、更易用
java·后端·架构
helloworld_工程师25 分钟前
DeepSeek R1 集成难题完美解决:DeepSeek4j来帮你解决
前端·后端·github
大鱼七成饱25 分钟前
mybatisPlus的saveOrUpdate有死锁问题?
后端