Docker-compose

一、Docker-Compose

1.1 什么是Docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务

1.2 Docker-Compose安装

前置条件:安装好Docker
下载docker-compose二进制文件到服务器指定目录

    curl -L https://github.com/docker/compose/releases/download/1.24.0/docker_x0002_compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

重命名

    mv docker-compose-Linux-x86 docker-compose

执行授权操作

    chmod +x /usr/local/bin/docker-compose

测试

    docker-compose version

1.3 Docker-Compose模板文件

1.3.1 什么是模板文件?

模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。但是这里面大部分指令跟 docker run 相关参数的含义都是类似的。

默认的模板文件名称为 docker-compose.yml ,格式为 YAML 格式。

1.3.2 docker-compose模板基本格式案例

    version: "3.1" 
    services: 
        webapp:
            image: examples/web
            ports:
                - 80:80
            volumes:
                - /data

1.3.3 docker-compose模板文件常用指令

image:指定为镜像名称或镜像 ID
ports:设置暴露端口,容器端口 (HOST:CONTAINER) 格式
volumes:数据卷所挂载路径设置
command:覆盖容器启动后默认执行的命令
container_name:指定容器名称
environment:设置环境变量
build:指定 Dockerfile 所在文件夹的路径

1.3.4 docker-compose基本命令

创建并运行容器

    docker-compose up -d

参数:
-d 表示后台运行

启动容器

     docker-compose start/restart

停止容器

    docker-compose stop

停止并移除容器

    docker-compose down

注意:命令必须在docker-compose.yml文件所在位置执行

1.4、案例

step1:安装docker-compose

从window拉取文件,重命名为docker-compose,并执行授权


image.png
step2:查看当前docker状态

把原来单一的容器删除,进行compose统一管理


image.png
step3:配置文件操作
    version: "3.1"
    #管理各种容器
    services:
     tomcat:
       image: tomcat:8
       ports:
         - 8888:8080
       container_name: mytomcat
       restart: always
    
     mysql:
       image: mysql:5.7
       ports:
         - 3306:3306
       container_name: mysql
       environment:
         MYSQL_ROOT_PASSWORD: root
       volumes:
         - ./mysql/conf:/etc/mysql/conf.d
         - ./mysql/logs:/logs
         - ./mysql/data:/var/lib/mysql
       restart: always
image.png

配置文件保存后执行命令


image.png
step4:修改mysql配置文件

修改mysql编码格式,不然会乱码


image.png
step5:重启:dockers-compose restart

你可能感兴趣的:(Docker-compose)