[笔记] 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
相关推荐
Johny_Zhao13 分钟前
Ubuntu安装部署Zabbix网络监控平台和设备配置添加
linux·网络·mysql·网络安全·信息安全·云计算·apache·zabbix·shell·yum源·系统运维·itsm
chennalC#c.h.JA Ptho38 分钟前
kubuntu系统详解
linux·数据库·经验分享·postgresql·系统安全
熙曦Sakura42 分钟前
【Linux网络】HTTPS
linux·网络·https
铁锚1 小时前
一个WordPress连续登录失败的问题排查
java·linux·服务器·nginx·tomcat
撸猫7911 小时前
HttpSession 的运行原理
前端·后端·cookie·httpsession
程序视点1 小时前
Linux中find命令用法核心要点提炼
linux·linux命令·linux指令·linux的find命令
.生产的驴1 小时前
Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库
java·运维·数据库·spring·docker·容器·maven
嘵奇1 小时前
Spring Boot中HTTP连接池的配置与优化实践
spring boot·后端·http
知行021 小时前
MySQL的Docker版本,部署在ubantu系统
数据库·mysql·docker
cwywsx1 小时前
Linux:进程控制2
linux·运维·算法