Docker Compose一键管理容器

可以一键批量管理docker的容器。将所有需要创建的容器定义在compose配置文件中,通过一个命令一键可以创建并运行这些容器,而不需要一个一个启动。可以批量启动停止服务。

安装

#安装Docker-Compose并安装到/usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#给/usr/local/bin/docker-compose授权
chmod +x /usr/local/bin/docker-compose

配置文件

Docker Compose 使用 YAML 文件来定义多服务的应用。YAML 是 JSON 的一个子集,因此也可以使用JSON。

Docker Compose 默认使用文件名 docker-compose.yml。当然,也可以使用 -f 参数指定具体文件。

#版本有1 2 3
version:'3'
#定义服务,就是定义要启动的容器
services:
  #容器服务名
  mysql-101:
  	#容器镜像
    image: mysql:5.7
    #端口,容器的3306映射到宿主机的3308端口
    ports:
      - "3308:3306"
    #数据卷,mysql01-conf数据卷会和容器内部的/etc/mysql/conf.d挂载。
    volumes:
      - mysql01-log:/var/log/mysql
      - mysql01-data:/var/lib/mysql
      - mysql01-conf:/etc/mysql/conf.d
      - /etc/localtime:/etc/localtime:ro
    #环境设置,这里设置mysql的root密码
    environment:
      - MYSQL_ROOT_PASSWORD=root
    #容器重启策略:当容器出现故障或退出时会自动重启。手动不会。
    restart: always
    #容器名称
	container_name:mysql-01
	#使用的网络
    networks:
      - mall-net
  
  mysql-102:
    image: mysql:5.7
    ports:
      - "3309:3306"
    volumes:
      - mysql02-log:/var/log/mysql
      - mysql02-data:/var/lib/mysql
      - mysql02-conf:/etc/mysql/conf.d
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_ROOT_PASSWORD=root
    restart: always
	container_name:mysql-02
    networks:
      - mall-net
  
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - nginx-conf:/etc/nginx
      - nginx-html:/usr/share/nginx/html
      - /etc/localtime:/etc/localtime:ro
    restart: always
    networks:
      - mall-net
      
#指明上面所用到的数据卷
volumes:
  mysql01-log:
  mysql01-data:
  mysql01-conf:
  mysql02-log:
  mysql02-data:
  mysql02-conf:
  nginx-conf:
  nginx-html:


#网络
networks:
  mall-net:
    ipam:
      driver: default
      config:
        - subnet: "188.188.0.0/16"

数据卷

通过数据卷和容器的文件进行挂载映射,而且是由docker管理创建的,不像使用绝对路径那样,还要我们自己去创建。

命令

docker-compose up: 创建并启动容器

docker-compose up -d:后台运行容器,不会看到很多输出信息

docker-compose restart 服务名:重启容器,服务名是容器对应的服务名,在yaml文件的services的第一行

docker-compose down [选项] :停止在 docker-compose up 运行启动的容器,并删除配置文件中定义的网络或默认网络

选项:

1)--rmi type 删除镜像,类型必须是:

'all': 删除任何服务使用的所有镜像。

'local': 只删除没有由“image”字段设置的自定义标签

2)-v, --volumes 删除卷

3)--remove-orphans 删除Compose文件中未定义的服务。

4)-t,——timeout timeout指定以秒为单位的关机超时时间。(默认值:10)

docker volume ls:查看docker创建的数据卷

docker volume inspect 数据卷名称:查看数据卷的具体信息,包括所在实际路径。docker存放卷的位置一般为:/var/lib/docker/volumes/

你可能感兴趣的:(docker,docker,容器,运维)