跳至主要內容

安装

chanchaw大约 5 分钟devOpsdocker

离线安装

按照 本知识库文章open in new window 介绍离线安装 docker

鲁班学院

CentOS安装 docker

安装docker01.png安装docker02.png

设置开机启动并立即启动docker

systemctl enable docker systemctl start docker

设置加速镜像

设置加速镜像.png
设置加速镜像.png

腾讯黑马

更换源

更换源.png
更换源.png

CentOS7中安装docker

注意下面的第一个命令执行之前将 yum 配置文件设置为不更新内核,方法如下

# 使用下面命令打开配置文件
vi /etc/yum.conf
# 在 [main] 的最后添加下面两行
exclude=kernel*
exclude=centos-release*

centos7安装docker.png 上面中的代码如下:

#1. yum 包更新到最新,切记在配置文件中排除更新内核
sudo yum update

#2. 作用:安装需要的软件包,yum-util 提供 yum-config-manager功能,另外两个是 devicemapper 驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data 1vm2

#3. 设置 yum 源
#3.1. 方案一:使用ustc(推荐)
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
#3.2. 方案二:使用阿里云(可能失败)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4. 安装 docker;出现输入的界面会自动执行 y
sudo yum install -y docker-ce

默认更新 yum 源时会同时更新 linux 内核,而这样做对于生产环境来说太危险,可能造成意想不到的意外情况,所以生产环境中切记更新yum 源时不要更新内核,对于CentOS来说有两种方法:

  1. 修改 yum 配置文件
vi /etc/yum.confg
# 在 [main] 的最后添加下面代码:
exclude=kernel*
exclude=centos-release*
  1. 单次生效,在更新时带有必要的参数
yum --exclude=kernel* update
# 可以在更新前通过 cat /etc/issue 查看系统版本
# 通过 uname -a 查看内核版本
# 更新之后再次使用上面命令确保内核版本没有更新

测试安装成功 - 查看版本

docker -v

修改镜像源

修改镜像源.png 上图的命令如下:

# 执行下面命令:
mkdir /etc/docker
vi /etc/docker/daemon.json
# 打开的文件中输入下面的代码
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

docker 的启动与停止

02. docker的启动与停止.png 上图的代码如下:

systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker

docker-compose

概述

docker-compose概述.png
docker-compose概述.png

安装

2025年11月8日 在 ubuntu24server 中已经安装了 docker 继续安装 docker-compose 的方法如下

sudo apt install docker-compose-plugin
docker compose version

安装 docker-compose.png 上面的安装命令是:

curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2025年9月8日 17:12:32 再次安装 docker-compose,没有使用上面的方法,此时官方墙依然在,本次安装使用了 xget 转换路径后进行安装

# 官方原始安装方法
sudo curl -L "https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 使用了 xget 转换后的路径(将 https://github.com/ 替换为 https://xget.xi-xu.me/gh/)
# 测试安装成功
sudo curl -L "https://xget.xi-xu.me/gh/docker/compose/releases/download/v2.6.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 上面命令执行成功后,赋予下载文件可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 检查命令是否可用
sudo docker-compose version

升级v2

使用 sudo docker-compose up -d 创建容器时如果报错如下,说明当前 docker-compose 版本太低

ERROR: The Compose file './docker-compose.yml' is invalid because: Unsupported config option for services: 'trilium'

可使用命令 sudo docker-compose --version 查看当前版本,低于2就需要升级,按照下面步骤升级

# 移除旧版本(如果已安装)
sudo apt-get remove docker-compose

# 下载 Docker Compose V2(具体版本号和URL请查看官方发布页)
# 例如,对于 x86_64 架构的 Linux:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L "https://xget.xi-xu.me/gh/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证新版本
docker-compose --version

使用代理网络

在 CentOS 7 上,为 Docker 服务创建系统级的代理配置更为可靠。使用以下命令创建配置文件

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf

在文件中添加以下内容,将 10.8.2.58:7890 替换为你的代理服务器地址和端口(如果你的代理需要用户名和密码认证,格式为 http://username:password@10.8.2.58:7890):

[Service]
Environment="HTTP_PROXY=http://10.8.2.58:7890"
Environment="HTTPS_PROXY=http://10.8.2.58:7890"
Environment="NO_PROXY=localhost,127.0.0.1,.local"  # 可选,用于排除某些地址不使用代理

NO_PROXY 变量用于指定哪些域名或IP地址直接连接,不经过代理。保存配置文件后,需要重新加载 systemd 配置并重启 Docker 服务才能使更改生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

执行以下命令检查 Docker 服务的环境变量是否已正确设置:

sudo systemctl show --property=Environment docker

如果配置成功,输出应显示你设置的 HTTP_PROXYHTTPS_PROXY 值。

测试 - 查看版本号

安装后直接查看版本是不行的,还要给运行的权限。

# 给docker-compose 赋予权限
chmod +x /usr/local/bin/docker-compose
# 之后就可以查看版本号了
docker-compose -version

2020年10月10日 22:58:31 再次测试显示没有权限,执行了上面的赋予权限的操作依然提示没有权限,找了不少帖子都说就是权限的问题,实际试过了很多权限上的设置依然没有用,后来重新下载了 docker-compose 可执行程序上传到 /usr/local/bin 下并且覆盖原文件,然后执行上面的赋予权限的操作,然后 docker-compose version 就可以了。该可执行程序在 180 的网盘 安装程序-> 软件开发相关 -> linux 相关下 安装docker-compose.png

命令与参数介绍

docker-compose命令及参数.png
docker-compose命令及参数.png

编写模板文件

编写模板文件.png
编写模板文件.png

后台启动 docker-compose

docker-compose up -d 后面的 -d 表示后台运行

停止 docker-compose

docker-compose stop

删除容器以及附带的网络

docker-compose down

查看网络

docker network ls

docker-compose 模板文件

视屏中创建的目录是 /usr/local/mycompose ,并创建文件 docker-compose.yml 由于 yml 有空格的要求,最好复制下面的内容

version: "3"
services:
  mysql1:
    image: mysql:5.7
    environment: 
      MYSQL_ROOT_PASSWORD: "chanchaw"
    ports:
      - "3306:3306"
    container_name: "mysql1"
    networks:
      - dev
  tomcat1:
    image: tomcat
    ports:
      - "8080:8080"
    container_name: "tomcat1"
    networks:
      - dev
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge