美文网首页
Docker-compose

Docker-compose

作者: 眸晓 | 来源:发表于2021-04-27 17:14 被阅读0次

    Docker-compose是什么?

    之前运行一个镜像,需要添加大量的参数
    可以通过Docker-compose编写这些参数。
    Docker-compose可以帮助我们批量的管理容器。
    只需要通过一个docker-compose.yml文件去维护即可。

    如何在linux中使用docker-compose

    1. 去github官网搜索docker-compose,下载1.24.1版本的docker-compose

    2. 将下载好的docker-compose文件,拖拽到Linux操作系统中

    3. 需要将docker-compose文件名称修改一下,方便使用,然后将docker-compose文件设置为一个可执行的权限

    mv docker-compose-Linux-x86_64 docker-compose  //通过这种方式可以直接改名
    chmod 777 docker-compose  //将docker-compose修改为可读可写可执行的文件
    
    1. 方便后期操作,配置一个环境变量
      将docker-compose文件移动到/usr/local/bin下,修改/etc/profile文件,
      给/usr/local/bin配置到了PATH中
    mv docker-compose /usr/local/bin
    vi /ect/profile
    

    (修改profile中,将/usr/local/bin配置到PATH中:export PATH=$PATH:/usr/local/bin)
    再执行source /etc/profile (重新执行刚修改的初始化文件)

    1. 测试一下
      在任意目录执行docker-compose version,如出现正确响应,则成功

    如何写docker-compose.yml文件

    yml文件以key: value形式来指定配置信息(注意,冒号:后面一定有一个空格)
    多个配置信息以换行+缩进(不是tab键,而是两个空格键)的方式来区分
    在docker-compose.yml文件中,不要使用制表符(tab键)

    举个例子:以mysql+tomcat为例

    version: '3.1'
    services: 
      mysql:                    # 服务的名称
        restart: always         # 代表只要docker启动,那么这个容器就跟着一起启动
        image: daocloud.io/library/mysql:5.7.4     # 指定镜像路径
        container_name: mysql   # 指定容器名称(与服务名称不是一定要一样,两个东西)
        ports:
          - 3306:3306           # 指定端口号的映射
        environment:
          MYSQL_ROOT_PASSWORD: root   # 指定Mysql的ROOT用户登录密码
          TZ: Asia/Shanghai           # 指定东八时区
        volumes:
          - opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql   # 映射数据卷到宿主机上
      tomcat:
        restart: always
        image: daocloud.io/library/tomcat:8.5.15-jre8
        container_name: tomcat
        ports:
          - 8080:8080
        environment:
          TZ: Asia/Shanghai
        volumes:
          - opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
          - opt/docker_mysql_tomcat/tomcat_logs::/usr/local/tomcat/logs
    
    使用docker-compose启动nginx
    version: '3.1'
    services: 
      nginx: 
        restart: always
        image: daocloud.io/library/nginx:1.13.0-alpine
        container_name: my_nginx
        ports: 
          - 80:80
    

    使用docker-compose命令管理器

    在使用docker-compose命令时,默认会在当前目录下找docker-compose.yml文件

    1. 基于docker-compose.yml启动管理的容器
    docker-compose up -d   (-d是在后台运行容器)
    
    1. 关闭并删除容器
    docker-compose down
    
    1. 开启|关闭|重启已经存在的由docker-compose维护的容器
    docker-compose start|stop|restart
    
    1. 查看由docker-compose管理的容器
    docker-compose ps
    
    1. 查看日志
    docker-compose logs -f
    

    如何使用docker-compose.yml自定义构建镜像

    version: '3.1'
    services: 
      ssm:                    # 服务的名称
        restart: always         # 代表只要docker启动,那么这个容器就跟着一起启动
        build:
          context: ../             #指定dockerfile文件所在路径
          dockerfile:Dockerfile    #指定dockerfile的文件名称
        image: ssm:1.0.1     # 因为是自定义镜像,所以直接指定镜像名称和版本即可
        container_name: ssm   # 指定容器名称(与服务名称不是一定要一样,两个东西)
        ports:
          - 8081:8080           # 指定端口号的映射
        environment:
          TZ: Asia/Shanghai           # 指定东八时区
    

    注意:可以直接启动基于docker-compose.yml以及dockerfile文件构建的自定义镜像
    docker-compose up -d
    如果自定义镜像不存在时,会帮助我们构建出自定义镜像,但是如果自定义镜像已经存在,
    会直接运行这个自定义镜像,如果不想运营这个自定义镜像,而是想重新构建,需要执行
    docker-compose up -d --build 命令

    相关文章

      网友评论

          本文标题:Docker-compose

          本文链接:https://www.haomeiwen.com/subject/drkprltx.html