[个人笔记] 记录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 精选实践
相关推荐
挥剑决浮云 -7 分钟前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
新晓·故知1 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
魔理沙偷走了BUG2 小时前
【数学分析笔记】第4章第4节 复合函数求导法则及其应用(3)
笔记·数学分析
tangdou3690986553 小时前
Docker系列-5种方案超详细讲解docker数据存储持久化(volume,bind mounts,NFS等)
docker·容器
NuyoahC3 小时前
算法笔记(十一)——优先级队列(堆)
c++·笔记·算法·优先级队列
这可就有点麻烦了4 小时前
强化学习笔记之【TD3算法】
linux·笔记·算法·机器学习
漫无目的行走的月亮6 小时前
在Docker中运行微服务注册中心Eureka
docker
Ljubim.te6 小时前
软件设计师——数据结构
数据结构·笔记
speop8 小时前
【笔记】I/O总结王道强化视频笔记
笔记·音视频