Docker-compose容器编排无介绍快使用(十一)
问题背景
上篇介绍了Docker拉取zookeeper,本章介绍一下docker的compose
注意事项:
- 因为我写的是一个系列,在之前的文章介绍过的一般不会重复介绍,可以根据以下链接查看之前的知识点
- 默认已安装Centos7
- 默认已安装JDK
- 默认开启root权限
- 默认已安装mysql客户端,如Navicat或Sqlyog
- 一个镜像可以启动多个容器,第一次启动容器会自动保存,下次启动容器可以使用 docker ps -a 查看所有容器ID和名字,然后使用 docker start [容器ID或名字] 进行启动
Docker无介绍快使用,安装部署hello测试(一)
Docker无介绍快使用,docker指令使用(二)
Docker无介绍快使用,docker数据卷Volumes挂载的使用(三)
Docker无介绍快使用,docker拉取mysql5.7及使用(四)
Docker无介绍快使用,docker拉取tomcat及使用(五)
Docker无介绍快使用,docker拉取Nginx(六)
Docker无介绍快使用,docker拉取redis(七)
Dockerfile的简介及使用(八)
Docker无介绍快使用,docker拉取rocketmq(九)
Docker-compose安装
1 多个docker容器使用Docker Compose,通过一个配置文件来管理多个Docker容器,所有的容器通过services定义,使用docker-compose脚本来启动,停止和重启
2 在线安装docker-compose,在linux上需要自己安装docker-compose,windows和macos安装docker时附带安装好了
github下载
sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
或者github太慢,daocloud下载
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
或者pip安装
pip install docker-compose
3 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
4 查看版本,docker-compose -v
docker-compose --version
Docker-compose示例
1 版本号需要兼容性,目前都是使用的3
version: "3" #版本号必写
services: #必写
tomcat: #容器名唯一
container_name: tomcat01 #指定容器名
#build #启动容器前根据Dockerfile构建镜像,再使用这个镜像,不能与image同时使用
image: tomcat:8.0 #使用tomcat镜像,版本号8.0
ports: #端口号映射
- 8080:8080 #宿主机端口:容器端口
depends_on: #依赖mysql,使用了这个指令,会优先启动mysql,再启动tomcat
- mysql
networks: #指定容器使用的网桥,一个项目的容器在一个网桥里面
- gaogao
restart: always #启动docker时,自动启动tomcat01
tomcat01: #容器名唯一,与上面的名字不能相同
container_name: tomcat02 #指定容器名,推荐使用默认名字,不会出现名字冲突
image: tomcat:8.0 #使用tomcat镜像,版本号8.0
ports: #端口号映射
- 8081:8080 #宿主机端口:容器端口
depends_on: #依赖mysql,使用了这个指令,会优先启动mysql,再启动tomcat
- mysql
networks: #指定容器使用的网桥,一个项目的容器在一个网桥里面
- gaogao
redis: #容器名唯一
image: redis:5.0.12
ports:
- "6379:6379"
networks:
- gaogao
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
mysql:
image: mysql:5.6
ports:
- "3306:3306"
environment: #类似于docker run -e MYSQL_ROOT_PASSWOAR=root
- "MYSQL_ROOT_PASSWORD=123456" #mysql的密码
volumes: #容器目录映射,docker-compose路径必须存在,docker run可以自己创建路径
- "/root/mysqlData:/var/lib/mysql" #绝对路径,宿主机目录:容器目录
#- "mysqlData:/var/lib/mysql" #相对路径,需要使用volumes声明mysqlData,会自动创建别名文件夹
networks:
- gaogao
networks: #声明网桥,自动创建
gaogao:
volumes:
db-data:
mysqlData: #声明数据卷别名,必须加上冒号
2 启动docker-compose,-d后台启动,执行指令时,需要在docker-compose.yml文件夹下
docker-compose up
使用docker-compose up,最好先进行清除构建的缓存
docker-compose down
总结
作为程序员第 128 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Lyric: 会不会有人可以明白
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110747.html