可以一键批量管理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 -f compose.yaml up -d
:指定compose配置文件,后台创建并启动compose配置文件里面所有容器。
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/文章来源:https://www.toymoban.com/news/detail-675577.html
docker rm -f 容器id
:强制删除某个容器,如果想要完全删除干净某个容器,还得删除对应的数据卷。然后再docker-compose up 重新启动。文章来源地址https://www.toymoban.com/news/detail-675577.html
到了这里,关于Docker Compose一键管理容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!