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


    容器技术


    记录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 精选实践
  • 相关阅读:
    Tomcat Java内存马 listener型
    JDBC在IDEA中配置mysql过程及编程详解
    【室友用一局王者荣耀的时间学会了用BI报表数据处理】
    SQL优化万能公式:5 大步骤 + 10 个案例
    【cmake实战九】cmake常用指令
    注意力机制讲解与代码解析
    基于Gmssl库静态编译,实现服务端和客户端之间的SSL通信
    WSL2下的Docker配置和使用
    【Linux】gcc和g++的区别
    ❤️新版Linux零基础快速入门到精通——第一部分❤️
  • 原文地址:https://blog.csdn.net/m0_54768192/article/details/139320427