Docker-compose使用方法
一:简介
Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等,就拿官网的 Python 例子来说,功能很简单,利用 redis 的 incr 的功能对页面的访问量进行统计。
二:全量全货环境介绍
常用命令
docker-compose:
--help 查看帮助
up 前台启动
down 关闭所有
-f file 指定启动或关闭时的控制文件,如果不指定,默认为当前目录下docker-compose.yml
up -d 后台启动
ps 查看容器状态
logs 查看日志
docker-compose.yml文件讲解
network_mode: host 对应了docker中的--network,默认使用bridge
服务
# 使用v2版本
version: '2'
services:
# 服务名
manageserver:
# 使用的镜像
image: openjdk:7-jdk
# 容器重启策略 no:默认策略,一直不重启 on-failure 失败才重启,on-failure:3 重启三次 always 一直重启
restart: always
# 使用GPU version得指定'2.3'版本,需要安装nvidia-docker2
runtime: nvidia
# 资源限制
ulimits:
# 创建的进程限制(线程是轻量级的进程)
nproc: 65535
# 打开文件数限制
nofile:
soft: 20000
hard: 40000
# 内存限制
mem_limit: 512m
# 端口映射
ports:
- "18001:18001"
- "5009:5009"
# 保证几个server启动后,才启动
depends_on:
- zoo1
- activemq
- redis
# 镜像变量
environment:
- _JAVA_OPTIONS=-Duser.timezone=Asia/Shanghai
- JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5009
- DB_URL=${DB_URL}
- DB_USER=${DB_USER}
- DB_PWD=${DB_PWD}
# 文件映射
volumes:
- /srv/docker/app:/app
# 指定接入点(镜像生成后,会执行的启动脚本)
entrypoint:
- /app/entrypoint.sh # 会覆盖dockerfile中
- manageserver # 往上面的脚本传参
Tomcat
version: '2'
services:
rweb01:
image: tomcat:7.0.75
# 保证后端服务先启动(但是无法保证后端服务无法完整启动)
depends_on:
- zoo1
- activemq
- redis
environment:
- _JAVA_OPTIONS=-Duser.timezone=Asia/Shanghai
volumes:
- /srv/docker/tomcat/webapps/adminweb:/usr/local/tomcat/webapps/adminweb
- /srv/docker/tomcat/webapps/accountweb:/usr/local/tomcat/webapps/accountweb
ports:
- "7071:8080"
Oracle
docker run --network=host -v /srv/docker/oracle/u01:/u01 -p 1521:1521 -p 1158:1158 --name oracle -d ufoscout/oracle-11g
--network=host 网络模拟,和宿主机共用网卡(默认为bridge)
--name 容器名
-d 后台启动
ufoscout/oracle-11g 镜像名
查看镜像启动
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b51c82037ac ufoscout/oracle-11g "/bin/sh -c oracle.sh" 6 months ago Up 4 months oracle
"/bin/sh -c oracle.sh" 为接入文件,当容器启动后,会自动执行
三:日常维护使用命令
启动前置容器
# cd /root/docker && docker-compose up -d
关闭前置容器
# cd /root/docker && docker-compose down
查看容器运行日志
# cd /root/docker && docker-compose logs 查看所有
# docker-compose logs redis 查看指定服务
查看服务运行状态
# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------
dockerfile_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
dockerfile_web_1 /bin/sh -c python app.py Up 0.0.0.0:5000->5000/tcp
# State up或exit ,当我们使用发现一个容器为exit状态,可以直接使用docker-compose up -d [server]启动
进入容器
docker exec -ti [id | name ] /bin/bash
数据库容器启动关闭
# docker start oracle 启动
# docker stop oracle 关闭
- 文章链接: https://blog.zhangcun.store/2022/04/21/docker-compose-shi-yong-fang-fa/
- 版权声明: 本网站所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
你的赏识是我前进的动力
支付宝
微信
![支付宝打赏](https://images.zhangcun.store/backImg/Alipay.jpg)
![微信打赏](https://images.zhangcun.store/backImg/Wechat.jpg)