当前位置: 首页 > news >正文

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

容器技术

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

  • 容器技术
  • 记录docker-compose的部署过程
    • (可选)新建docker用户
    • (可选)迁移docker-ce目录
    • docker-compose
      • 官方插件形式安装
      • 官方二进制形式独立安装
      • (可选) 使用docker-compose二进制包的 bash_completion 命令补齐
    • 参考来源


记录docker-compose的部署过程

1. 使用CentOS 7.9系列的Linux操作系统
2. docker社区版:docker-ce
3. docker部署编排工具:docker-compose
4. docker私有镜像仓库管理工具:docker-harbor
5. docker轻量级可视化容器管理工具:Portainer

# 默认已初始化安装 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服务端的目录结构

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

(可选)新建docker用户

# 新增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目录

# 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

官方插件形式安装

## 官方插件安装
[root@docker01 ~]# yum install -y docker-compose-plugin[root@docker01 ~]# docker compose version
Docker Compose version v2.27.0

官方二进制形式独立安装

## 官方二进制包独立安装。 如下方法是获取到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 命令补齐

# (可选) 使用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 精选实践

相关文章:

  • 【论文复现|智能算法改进】基于自适应蜣螂算法的无人机三维路径规划方法
  • 使用javacv对摄像头视频转码并实现播放
  • C# 类的深入指南
  • 【JMeter接口自动化】第7讲 Jmeter三个重要组件
  • 第100+9步 ChatGPT文献复现:ARIMA预测百日咳
  • 透视AI技术:探索折射技术在去衣应用中的奥秘
  • 百度地图2
  • # SpringBoot 如何让指定的Bean先加载
  • 【贪心算法题记录】53. 最大子数组和
  • 天洑国产工业软件2024R1版本产品发布会顺利举办
  • Dynamics 365:安全的客户参与应用程序
  • HR人才测评,如何做中层管理人员的素质测评?
  • 数据库设计:实体关系图
  • 速盾:怎么查询cdn真实ip?
  • Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 03Go 类型总结
  • Angular 响应式表单 基础例子
  • JavaScript实现分页效果
  • Joomla 2.x, 3.x useful code cheatsheet
  • Vue2.x学习三:事件处理生命周期钩子
  • 从setTimeout-setInterval看JS线程
  • 猴子数据域名防封接口降低小说被封的风险
  • 后端_ThinkPHP5
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊flink的TableFactory
  • 深度学习在携程攻略社区的应用
  • 手写双向链表LinkedList的几个常用功能
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 用mpvue开发微信小程序
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​虚拟化系列介绍(十)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)nsfocus-绿盟科技笔试题目
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (轉)JSON.stringify 语法实例讲解
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .Net多线程总结
  • .NET基础篇——反射的奥妙
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • /usr/bin/env: node: No such file or directory
  • ?.的用法
  • @Async注解的坑,小心
  • @font-face 用字体画图标
  • [20180129]bash显示path环境变量.txt
  • [Android]使用Git将项目提交到GitHub
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [ERROR] ocp-server-ce-py_script_start_check-4.2.1 RuntimeError: ‘tenant_name‘
  • [hive] posexplode函数
  • [IE编程] 如何在IE8 下调试BHO控件/工具栏(调试Tab进程)