简介
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用, 通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
docker-compose 常用命令
1 2 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 常用命令
1 2 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
用于监控
1 2 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
|
容器管理
1 2 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工具
1 2 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
|
代理转发流量
1 2 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
1 2 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
|
1 2 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
|
1 2 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
|