[个人笔记] 记录docker-compose的部署过程

容器技术

第二章 记录docker-compose的部署过程


记录docker-compose的部署过程

1. 使用CentOS 7.9系列的Linux操作系统

  1. docker社区版:docker-ce

  2. docker部署编排工具:docker-compose

  3. docker私有镜像仓库管理工具:docker-harbor

  4. docker轻量级可视化容器管理工具:Portainer

go 复制代码
# 默认已初始化安装 CentOS 7.9 + docker-ce
CPU: 4核 * 2
Memory: 16G
Disk: 2块物理硬盘(sda,sdb) sda: 40GB(预装最小化Linux), sdb: 200GB
Swap: 12G
hostname: docker01.myside.com
ip: 10.0.0.210
gateway: 10.0.0.254
dns: 223.5.5.5 114.114.114.114
docker应用的映射存储目录: /opt/mydocker

设置docker服务端的目录结构

shell 复制代码
/opt/mydocker/
├── certs			# 存放证书的目录, 按项目名称划分, ca证书放当前目录下
├── docker-root		# docker-ce目录
├── packages		# 存储安装包、软件包
└── projects		# 项目目录

(可选)新建docker用户

shell 复制代码
# 新增docker01用户,添加到docker组,用于管理docker应用
[root@docker01 ~]# useradd -m -g docker docker01
[root@docker01 ~]# echo docker01 | passwd --stdin docker01

# 给docker01用户设置sudo免密权限
[root@docker01 ~]# visudo
docker01 ALL=(ALL) NOPASSWD: ALL
# :x保存

# (可选) 给docker01用户设置sudo免密权限缩减到部分命令
[root@docker01 ~]# visudo
docker01 ALL=(ALL) NOPASSWD: /bin/systemctl start docker
docker01 ALL=(ALL) NOPASSWD: /bin/systemctl stop docker
docker01 ALL=(ALL) NOPASSWD: /bin/systemctl restart docker
docker01 ALL=(ALL) NOPASSWD: /bin/bash  	# 允许docker01提权到root
# :x保存

(可选)迁移docker-ce目录

shell 复制代码
# centos-root根目录仅40Gi的容量,为防止docker镜像过多造成磁盘满载,将docker-ce的目录迁移到sdb磁盘
# 不修改docker.service的配置,仅使用 ln -s 将 /var/lib/docker/ 转储并添加软链接
systemctl stop docker
# 确保/opt/mydocker/docker-root/目录是不存在的, 否则mv会把docker迁移到docker-root目录下的docker目录, 而不是docker-root目录本身
mv /var/lib/docker/ /opt/mydocker/docker-root/
ln -s /opt/mydocker/docker-root /var/lib/docker
systemctl daemon-reload;systemctl start docker

docker-compose

官方插件形式安装

bash 复制代码
## 官方插件安装
[root@docker01 ~]# yum install -y docker-compose-plugin

[root@docker01 ~]# docker compose version
Docker Compose version v2.27.0

官方二进制形式独立安装

bash 复制代码
## 官方二进制包独立安装。 如下方法是获取到latest节点的版本,但仓库会存在有-rc的候选测试版本,建议从github仓库对照过最新的正式版本tag再构建二进制包的下载命令
# curl获取github仓库的最新tag_name
COMPOSE_TAG=`curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -i tag_name | awk -F '"' '{print $4}'`
# 构建下载二进制包的命令, uname -s 要转小写
curl -SL https://github.com/docker/compose/releases/download/$COMPOSE_TAG/docker-compose-`uname -s | awk '{print tolower($0)}'`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 推荐把docker-compose加入到/usr/bin/目录. (非root用户 sudo -i 到root时不会携带如/usr/local/bin/目录的PATH环境变量,所以建议把docker-compose命令链接到/usr/bin/目录,提权root后就能直接使用docker-compose了)
ln -s /usr/local/bin/docker-compose /usr/bin/

[root@docker01 ~]# docker-compose version
Docker Compose version v2.27.0

(可选) 使用docker-compose二进制包的 bash_completion 命令补齐

bash 复制代码
# (可选) 使用docker-compose二进制包的 bash_completion 命令补齐。
[root@docker01 ~]# curl -L https://raw.githubusercontent.com/docker/compose/release/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
[root@docker01 ~]# source /etc/bash_completion.d/docker-compose

参考来源

  1. Docker Compose overview
  2. Overview of docker compose CLI
  3. Docker Compose 精选实践
相关推荐
独隅9 分钟前
PyTorch 模型部署的 Docker 配置与性能调优深入指南
人工智能·pytorch·docker
Wilber的技术分享20 分钟前
【LeetCode高频手撕题 2】面试中常见的手撕算法题(小红书)
笔记·算法·leetcode·面试
愚昧之山绝望之谷开悟之坡1 小时前
合格境外投资者
笔记
寒秋花开曾相惜3 小时前
(学习笔记)3.8 指针运算(3.8.3 嵌套的数组& 3.8.4 定长数组)
java·开发语言·笔记·学习·算法
yuzhuanhei3 小时前
docker常用命令
运维·docker·容器
我叫张小白。3 小时前
Dify系列(一):平台安装部署+界面操作
docker·ai·语言模型·大模型·dify·智能体
anarckk3 小时前
docker volume 导入导出命令
运维·docker·容器
_李小白3 小时前
【AI大模型学习笔记之平台篇】第五篇:Trae常用模型介绍与性能对比
人工智能·笔记·学习
承渊政道4 小时前
【优选算法】(实战体会位运算的逻辑思维)
数据结构·c++·笔记·学习·算法·leetcode·visual studio