简介
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用, 通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
docker-compose 常用命令
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | #控制台实时打印查看容器日志# docker-compose -f /path/docker-compose.yml logs -f
 docker-compose -f /home/data/docker/services/aden-assistant/aden-assistant-endpoint/docker-compose.yml logs -f
 
 # 只实时打印,只显示最后 200 行
 # docker-compose -f /path/docker-compose.yml logs -f --tail=200
 docker-compose -f /home/data/docker/services/aden-assistant/aden-assistant-endpoint/docker-compose.yml logs -f --tail=200
 
 
 # 上面是通过 -f 参数指定了对应的 docker-compose.yml 文件,也可以直接进入到对应的 docker-compose.yml 路径后,再执行如下
 cd /home/data/docker/services/aden-assistant/aden-assistant-endpoint
 docker-compose logs -f  或 docker-compose logs -f --tail=200
 
 | 
docker 常用命令
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | # 查看容器当前的使用情况 中间的 2bb19976d87f 是容器 ID# docker stats --no-stream <container_id> 一次性获取
 docker stats --no-stream 2bb19976d87f
 # 实时刷新,会一直更新刷新滚动屏幕
 docker stats 2bb19976d87f
 # 输出参数详解
 # `CONTAINER ID`: 容器的唯一标识符。
 # `NAME`: 容器的名称。
 # `CPU %`: 容器使用的 CPU 百分比。
 # `MEM USAGE / LIMIT`: 容器当前使用的内存量以及内存限制。
 # `MEM %`: 容器使用的内存百分比。
 # `NET I/O`: 容器的网络输入/输出量。
 # `BLOCK I/O`: 容器的块输入/输出量。
 # `PIDS`: 容器中运行的进程数量。
 
 #查看容器的启动参数
 # docker exec <container_name> ps -ef
 docker exec 2bb19976d87f ps -ef
 # 进入容器内部
 docker exec -it <container_name_or_id> /bin/bash
 # 通过 jps 查看 jar 对应的 PID
 jps
 # 查看某个 PID 的内存情况(据说要配置启动参数 -XX:NativeMemoryTracking=summary)
 jcmd <pid> VM.native_memory summary
 # 查看更加详细的信息(据说要配置启动参数 -XX:NativeMemoryTracking=summary)
 jcmd <pid> VM.native_memory detail
 
 | 
常用docker -compose镜像
注意查看区分如果采用相对路径挂载的需要在同级创建对应服务的目录
Application
用于监控
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 
 | version: "3"
 
 services:
 
 uptime-kuma:
 
 image: louislam/uptime-kuma:latest
 
 container_name: uptime-kuma
 
 restart: always
 
 
 
 network_mode: host
 
 
 
 volumes:
 - ./uptime-kuma:/app/data
 - /var/run/docker.sock:/var/run/docker.sock
 - /usr/bin/docker:/usr/bin/docker
 - ./wx.sh:/tmp/cache/wx.sh
 - ./curl:/usr/local/bin/curl
 command: ls
 
 | 
容器管理
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | version: "3"
 
 services:
 
 portainer:
 image: portainer/portainer-ce
 container_name: portainer
 restart: always
 network_mode: host
 volumes:
 - /var/run/docker.sock:/var/run/docker.sock
 - ./portainer:/data
 
 | 
CI工具
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | version: "3"
 
 services:
 jenkins:
 user: root
 restart: always
 image: jenkins/jenkins:lts
 container_name: jenkins
 ports:
 - 8082:8080
 - 50000:50000
 volumes:
 - /var/vol_dockers/jenkins_home/:/var/jenkins_home
 - /var/run/docker.sock:/var/run/docker.sock
 - /usr/bin/docker:/usr/bin/docker
 - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
 
 | 
代理转发流量
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | version: "3"
 
 services:
 nginx:
 image: nginx
 container_name: nginx
 network_mode: host
 
 
 
 volumes:
 - ./nginx/nginx.conf:/etc/nginx/nginx.conf
 - ./nginx/logs:/var/log/nginx
 - ./nginx/html:/usr/share/nginx/html
 restart: always
 
 | 
DB
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | version: "3"
 
 services:
 
 postgresql:
 image: postgres
 container_name: postgresql
 restart: always
 environment:
 POSTGRES_DB: automation
 POSTGRES_USER: root
 POSTGRES_PASSWORD: B2dwybj8a0
 network_mode: host
 volumes:
 - ./postgres/data:/var/lib/postgresql/data
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | version: "3"
 
 services:
 
 mysql:
 image: mysql
 container_name: mysql
 restart: always
 environment:
 MYSQL_ROOT_PASSWORD: B2dwybj8a0
 TZ: Asia/Shanghai
 network_mode: host
 volumes:
 - ./mysql/data:/var/lib/mysql
 - ./mysql/config/my.cnf:/etc/mysql/my.cnf
 command:
 --max_connections=1000
 --character-set-server=utf8mb4
 --collation-server=utf8mb4_general_ci
 --default-authentication-plugin=mysql_native_password
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | version: "3"
 
 services:
 
 mongodb:
 image: mongo
 container_name: mongodb
 restart: always
 environment:
 MONGO_INITDB_ROOT_USERNAME: admin
 MONGO_INITDB_ROOT_PASSWORD: HRdwXbj8V0
 network_mode: host
 volumes:
 - ./mongodb/data:/data/db
 command: mongod --auth
 
 |