Docker-Compose

文章目录

  • 下载安装Docker-Compose
    • 需求
    • 下载安装
  • 创建docker-compose.yml文件
  • 使用docker-compose命令管理容器
  • docker-compose结合Dockerfile使用


下载安装Docker-Compose

需求

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

下载安装

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

    https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64  # 1.29.2版本链接
    https://github.com/docker/compose/tags   # 各版本目录
    
  2. 将下载好的文件通过ftp拖拽进linux系统中

  3. 修改docker compose文件文件名称,并给予可执行的权限

    mv docker-compose-Linux-x86_64 docker-compose
    chmod 777 ./docker_compose 
    
  4. 方便后期操作,配置环境变量

  5. 将docker-compose移动到/usr/local/bin目录下 ,修改/etc/profile文件,给/usr/local/bin配置到PATH中

    mv docker-compose /usr/local/bin
    vim /etc/profile
    	# 添加目录
    	export PATH=$JAVA_HOME:/usr/local/bin:$PATH
    source /etc/profile
    

创建docker-compose.yml文件

在home目录中创建一个名为 docker-compose.yml 的文件,yml以下内容:

version: '3.8' # 根据docker version版本,19.03.0+以上版本则使用3.8
services: 
  mysql:           # 服务的名称
    restart: always   # 代表只要docker启动,这个容器就跟着启动
    image: daocloud.io/library/mysql:5.7.5-m15  # 指定镜像的路径
    container_name: mysql  # 指定容器的名称,docker ps可以看到的名字,也就是--name参数
    ports:
      - 3306:3306     # 端口号映射,多个映射照样在下方同格式添加,也就是-p参数
    environment:
      MYSQL_ROOT_PASSWORD: 960690   # 指定MySql的Root用户登录密码
      TZ: Asia/Shanghai           # 指定时区
    volumes:
      - /home/docker_mysql/:/var/lib/mysql       # 映射数据卷
  tomcat:
    restart: always
    image: daocloud.io/library/tomcat:8.0.45
    container_name: tomcat
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /home/tomcat_webapps:/usr/local/tomcat/webapps
      - /home/tomcat_logs:/usr/local/tomcat/logs

在这里插入图片描述

使用docker-compose命令管理容器

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

测试:

  1. 启动并查看管理的容器

    Docker-Compose_第1张图片

  2. mysql查看链接

    Docker-Compose_第2张图片

  3. 关闭容器并测试链接

    Docker-Compose_第3张图片

    Docker-Compose_第4张图片

  4. 重启容器并测试链接

    Docker-Compose_第5张图片

    Docker-Compose_第6张图片

  5. 关闭并删除容器

    Docker-Compose_第7张图片

    此时docker-compose中管理的容器被删除,但是镜像依旧还在,通过docker images可查看当前镜像

docker-compose结合Dockerfile使用

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

以自定义镜像demo项目为例:

docker_compose.yml文件

version: "3.1"
services: 
  ssm:            # 服务的名称
    restart: always   # 代表只要docker启动,这个容器就跟着启动
    build:         # 构建自定义镜像
      context: ../   # 指定dockerfile文件的路径
      dockerfile: Dockerfile	# 指定dockerfile的文件名字
    image: demo:1.0   # 镜像就是上方build构建的,指定名称即可
    container_name: demo
    ports:
      - 8081:8080
    environment:
      TZ: Asia/Shanghai

Dockerfile文件:

from daocloud.io/library/tomcat:8.5.15-jre8		# 依赖的环境
copy demo.var /usr/local/tomcat/webapps       # 环境自添加的数据

使用:

# 可以直接基于这两个文件构建自定义镜像并管理
docker-compose up -d
# 如果自定义镜像不存在,会帮助我们创建,如果已经存在会直接运行这个镜像

# 如果想重新构建
docker-compose build

# 运行时重新构建
docker-compose up -d --build

你可能感兴趣的:(Docker,docker,容器,学习,centos)