Docker Compose is a command-line tool docker provided for defining and running a plurality of applications composed of a container. Use compose, we can define various service applications declarative YAML file by a single command to complete the creation and launch applications. Author: Zhang Dong Dong
Installation 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
- In the
docker-compose.yml
services defined in the composition of the application, so that they can run together in an isolated environment - Space indention level
- Blank spaces after the colon
version: '2'
services:
nginx1:
image: nginx
ports:
- "8080:80"
nginx2:
image: nginx
ports:
- "9090:80"
Start Service
- docker creates a default network
command | service |
---|---|
docker-compose up | Start all services |
docker-compose up -d | Back to start all services |
docker-made ps | Print all containers |
docker-compose stop | Stop all services |
docker-compose logs -f | Keep track log |
docker-compose exec nginx1 bash | Enter nginx1 service system |
docker-compose rm nginx1 | Delete service container |
docker network ls | View Network Network does not delete |
docker-compose down | Delete all of the network and containers |
Network ping each other
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>
Configuration data volume
- networks specify a custom network
- volumes specified data volume
- Position data volume in the host
/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