Docker Compose介绍
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。
docker-compose github
https://github.com/docker/compose
安装docker-compose
(1)下载文件
代码语言:javascript复制wget https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64
(2)移动文件
代码语言:javascript复制mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
(3)赋予可执行权限
代码语言:javascript复制chmod x /usr/local/bin/docker-compose
(4)创建软链
代码语言:javascript复制ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
(5)查看版本
代码语言:javascript复制docker-compose --version
创建docker-compose文件
docker-compose是docker容器的编排工具
代码语言:javascript复制vim docker-compose.yml //编写.yml文件,写入以下内容
version: "3" //指定语法的格式的版本
services: //定义服务
nginx: //服务的名称
container_name: web-nginx //容器的名称
image: nginx-202206 //所使用的镜像
restart: always //随docker服务的启动而启动
ports:
- 9090:80 //映射的端口
volumes:
- /root/compose/webserver:/usr/share/nginx/html
//本地与容器挂载的目录
运行 docker-compose
代码语言:javascript复制docker-compose up -d
停止docker-compose
代码语言:javascript复制docker-compose stop
使用"-f"选项来指定yml文件启动文件中定义的容器
代码语言:javascript复制docker-compose -f /mnt/docker-compose.yml up -d
查看运行的容器
代码语言:javascript复制docker ps
创建测试网页
代码语言:javascript复制echo "compose" >/root/compose/webserver/index.html
访问测试
代码语言:javascript复制[root@localhost webserver]# curl 127.0.0.1:9090
compose
compose dockerfile构建镜像
(1)创建docker-compose 文件
代码语言:javascript复制[root@localhost mnt]# cat docker-compose.yml
version: "3"
services:
nginx:
build: .
container_name: webnginx
image: nginx-20220620
restart: always
ports:
- 9090:80
volumes:
- /root/compose/webserver:/usr/share/nginx/html
(2)创建Dockerfile 文件
代码语言:javascript复制[root@localhost mnt]# cat Dockerfile
FROM nginx-202206
COPY ./hello.html /usr/share/nginx/html
(3)docker-compose 结合 dockerfile文件生成镜像
代码语言:javascript复制[root@localhost mnt]# docker-compose build
(4)运行docker-compose
代码语言:javascript复制[root@localhost mnt]# docker-compose up -d
(5)查看运行容器
代码语言:javascript复制[root@localhost mnt]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
webnginx "/docker-entrypoint.…" nginx running 0.0.0.0:9090->80/tcp, :::9090->80/tcp
(6)访问测试
代码语言:javascript复制[root@localhost webserver]# echo "compose dockerfile" > index.html
[root@localhost webserver]# pwd
/root/compose/webserver
[root@localhost webserver]# curl 192.168.100.95:9090
compose dockerfile
Docker Compose 常用命令
docker-compose up -d 构建、创建、启动相关容器;-d表示在后台运行
docker-compose stop 停止所有相关容器
docker-compose ps 列出所有容器信息
docker-compose logs 查看服务日志输出
docker-compose build 构建或者重新构建服务
docker-compose start webnginx 启动指定服务已存在的容器
docker-compose stop webnginx 停止已运行的服务的容器
docker-compose rm webnginx 删除指定服务的容器
docker-compose kill webnginx 发送 SIGKILL 信号来停止指定服务的容器
docker-compose run webnginx bash 在容器服务上执行一个命令
Docker Compose官方文档
https://docs.docker.com/compose/reference/