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

总结

  • 其中还有一些指令可以查看docker的中文文档




作为程序员第 128 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha ...

Lyric: 会不会有人可以明白

你可能感兴趣的:(Docker-compose容器编排无介绍快使用(十一))