# docker-compose **Repository Path**: xmaxm/docker-compose ## Basic Information - **Project Name**: docker-compose - **Description**: docker-compose示列文件, 服务编排示列 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2021-11-19 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # docker-compose一些使用方法 ## 版本: 3 ## 1. deploy部署文件 ###### 1、运行脚本: initialize.sh ###### 2、init.sql是我们创建MySQL容器时就会执行的SQL文件 ###### 3、environment.env 配置文件环境变量 ###### 4、docker-init.yaml 配置同一网络同时启动多个容器 对应文件: docker-compose.yaml ###### 5、individually 一个docker-compose.yaml对应一个镜像, 具体的操作需自行完善 ###### 6、需自行准备jdk, maven(49行 73行) ###### 6、chaim文件夹为我自己目前使用的一些镜像对应的docker-compose.yaml(算是做个备份吧) ## 2. 运行脚本可能会遇到的一些问题 #### 脚本里面有, 但是在安装的途中可能会出现问题, 这里标记一下解决方法 ###### 1、docker-compose拉取不下来 更换yum源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo hosts添加解析: 52.216.16.16 github-production-release-asset-2e65be.s3.amazonaws.com 重新安装 ###### 2、docker-compose -v报找不到 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ###### 3、docker镜像拉取太慢 更换镜像源 建议配置阿里云的镜像地址: https://developer.aliyun.com/article/29941 ![daemon.png](daemon.png) ###### 3、network以路径为前缀 # -p Specify an alternate project name (default: directory name) 比如配置的network, 会以路径为前缀, 配置该值, 可以代替 # -f Specify an alternate compose file (default: docker-compose.yml) 指定yaml文件 # -d 后台运行 docker-compose -p docker -f /root/docker-init.yaml up -d ## 3. 打包docker镜像 #### 1. 可以参考我以前的一篇博客: https://blog.csdn.net/qq_38637558/article/details/105154483 ## 4. 一些可能需要的需求 ###### 1、加入一个存在的网络, 同时创建一个新的网络 参考文件:individually/docker-nacos.yaml 先执行docker-mysql.yaml, 然后执行docker-nacos.yaml docker exec -it nacos bash ping MYSQL_URL / ping db ###### 2、将已经运行的容器, 新增到一个新的网络中 创建一个网络docker_mysql: docker network create docker_mysql 将已运行的容器mysql加入该网络: docker network connect --alias MYSQL_URL docker_mysql mysql --alias MYSQL_URL可以通过别名通信. 也可以不要, 但是这样就只能通过容器的ID或者通信 docker network connect 一个已存在网络 容器名/容器ID ###### 2.1、将已经运行的容器, 从网络中移除 docker network disconnect 一个已存在网络 容器名/容器ID ###### 3、将当前镜像备份 docker tag docker.io/chaim2436/sentinel-dashboard:1.7.1 chaim2436/sentinel-dashboard:1.7.1 docker rmi docker.io/chaim2436/sentinel-dashboard:1.7.1后chaim2436/sentinel-dashboard:1.7.1会依旧存在 这里不能rmi id, 因为tag之后两个镜像的ID将会是一样的 ###### 4、启动docker-compose.yaml中的某一个服务 docker-compose -f /root/docker-init.yaml up -d db ###### 5、通过docker-compose.yaml启动, 不自动创建网络 参考文件: docker-zipkin.yaml # 停止创建网络 network_mode: bridge ###### 6、通过docker-compose.yaml启动, 加入到已有网络 参考文件: mysql8.0/docker-mysql.yaml # 1. 查看网络 docker network ls # 2. 创建网络 docker network create chaim_network # 3. docker-compose 指定对应的网络 services: service_name: networks: chaim_network: aliases: - MYSQL_URL networks: chaim_network: external: true ## 5.关于network ###### 1、常用的会有docker network inspect docker_mysql, 查看网络里面有哪些容器 ![READM.png](READM.png) ###### 2、就目前最基础的来说, 一个项目的mysql, redis, 加项目, 最基本的三者应该是属于同一个网络, 如果三个在不同的网络, 还需要配置通信, 只会增加工作量, 配置在同一个网络才能符合我们的需求 ## 6.更多 #### 1. 博客地址: https://blog.csdn.net/qq_38637558/article/details/121391324 #### 2. 代码地址: https://gitee.com/xmaxm/docker-compose ## 7.2024.07.01可用地址 #### 1. deploy/etc.docker/daemon.json ```shell sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <