Docker - Compose
程序员文章站
2022-03-03 09:06:35
...
Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。作者:张东冬
安装compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
编写docker-compose.yml
- 在
docker-compose.yml
中定义组成应用程序的服务,以便它们可以在隔离的环境中一起运行 - 空格缩进表示层次
- 冒号空格后面有空格
version: '2'
services:
nginx1:
image: nginx
ports:
- "8080:80"
nginx2:
image: nginx
ports:
- "9090:80"
启动服务
- docker会创建默认的网络
命令 | 服务 |
---|---|
docker-compose up | 启动所有的服务 |
docker-compose up -d | 后台启动所有的服务 |
docker-compose ps | 打印所有的容器 |
docker-compose stop | 停止所有服务 |
docker-compose logs -f | 持续跟踪日志 |
docker-compose exec nginx1 bash | 进入nginx1服务系统 |
docker-compose rm nginx1 | 删除服务容器 |
docker network ls | 查看网络网络不会删除 |
docker-compose down | 删除所有的网络和容器 |
网络互ping
docker-compose up -d
docker-compose exec nginx1 bash
apt update && apt install -y inetutils-ping
apt install -y curl
#可以通过服务的名字连接到对方
ping nginx2
curl <IP address>
配置数据卷
- networks 指定自定义网络
- volumes 指定数据卷
- 数据卷在宿主机的位置
/var/lib/docker/volumes/nginx-compose_data/_data
version: '2'
services:
nginx1:
image: nginx
ports:
- "8080:80"
networks:
- "web1"
volumes:
- "ng-vol:/data"
- "./nginx1:/usr/share/nginx/html"
nginx2:
image: nginx
ports:
- "9090:80"
networks:
- "default"
volumes:
- "ng-vol:/data"
- "./nginx2:/usr/share/nginx/html"
networks:
web1:
driver: bridge
volumes:
ng-vol:
driver: local
docker exec nginx-compose_nginx1 bash
cd /data
touch 1.txt
exit
cd /var/lib/docker/volumes/nginx-compose_data/_data
ls
上一篇: java中对文件和目录的操作
下一篇: 获取月初和月末