zoukankan      html  css  js  c++  java
  • 4.DockerCompose

    介绍Docker-Compose

    运行一个镜像,需要添加大量的参数。

    • 这个时候可以通过Docker-Compose编写这些参数。

    • Docker-Compose可以帮助我们批量的管理容器。

    • 只需要通过一个docker-compose.yml文件去维护即可,大大降低了我们使用docker的成本。

    Docker-Compose的使用配置

    1.去GitHub官网搜索docker-compose,选择需要下载的Docker-Compose版本

    https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64

    2.下载好后的文件就是一个可执行文件,将下载好的文件,上传到Linux操作系统中。

    3.方便后期操作做以下修改

    # 挪动文件并改名,给docker执行权限
    [root@docker ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
    [root@docker ~]# chmod 777 /usr/local/bin/docker-compose
    # 配置环境变量
    [root@docker ~]# vi /etc/profile
    export PATH=$PATH:/usr/local/bin
    [root@docker bin]# source /etc/profile
    

    4.测试一下 在任意目录下输入docker-compose

    Docker-Compose应用

    1.想要通过Docker-compose管理容器,只需要编写一个yml文件

    • yml文件以key: value方式指定配置信息

    • 多个配置信息以换行+缩进的方式来区分

    • 在docker-compose.yml文件中,不要使用制表符

    Docker-Compose管理MySQL和Tomcat容器

    mkdir /opt/docker_msyql-tomcat/
    cd /opt/docker_mysql-tomcat/
    vi docker-compose.yml
    
    version: '3.1'        # Docker-Compose是1.24.1 所以这里填3.1 要是和填写的和对应版本不同编写的内容也会不同
    services:             # 代表一个yml文件可以管理多个容器
      mysql:              # 服务的名称
        restart: always   # 代表只要Docker启动,那么这个容器就跟着一起启动
        image: daocloud.io/library/mysql:5.7.4    # 指定镜像下载路径
        container_name: mysql   # 指定容器名称,docker ps 可以看到的容器名称
        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
    

    2.使用Docker-Compose命令管理容器

    在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件
    也就是说要是当前目录没有docker-compose.yml文件,docker-compose命令将会不生效

    1.基于docker-compose.yml启动管理的容器

    [root@docker ~]# docker-compose up -d
    

    2.关闭并删除容器

    [root@docker ~]# docker-compose down
    

    3.开启|关闭|重启已经存在的由docker-compose维护的容器

    [root@docker ~]# docker-compose start|stop|restart
    

    4.查看由docker-compose管理的容器

    [root@docker ~]# docker-compose ps
    

    5.查看日志

    [root@docker ~]# docker-compose logs -f
    

    Docker-Compose配合Dockerfile使用

    使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器

    docker-compose.yml文件

    version: '3.1'
    services:
      ssm:
        restart: always
        build:                           # 构建自定义镜像
          context: ../                   # 指定Dockerfile文件所在路径
          dockerfile: Dockerfile         # 指定Dockerfile文件名称
        image: ssm:1.0.1           # 这次的image并不是去中央仓库拉取镜像,而是上面的build构建出的自定义镜像
        container_name: ssm
        ports:
          - 8081:8080
        environment:
          TZ: Asia/Shanghai
    

    Dockerfile文件

    from daocloud.io/library/tomcat:8.5.15-jre8
    copy ssm.war /usr/local/tomcat/webapps
    

    1.文件配置好后,可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像

    [root@docker ~]# docker-compose up -d
    

    如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像

    如果想重新构建的话,需要使用以下方式

    重新构建自定义镜像
    docker-compose build
    运行前,重新构建
    docker-compose up -d --build
    
  • 相关阅读:
    first root
    C r and n(组合数)
    学习笔记
    zabbix历史数据全部清楚
    Jetson TX2安装固态硬盘(原创)
    Jetson TX2安装tensorflow(原创)
    机器视觉编程作业02(01)(原创)
    机器视觉编程作业02(00)EM算法
    机器视觉 编程作业题 第一题(01)(原创)
    动态代理
  • 原文地址:https://www.cnblogs.com/eba001/p/14295108.html
Copyright © 2011-2022 走看看