Docker - Compose

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
Published 88 original articles · won praise 16 · views 40000 +

Guess you like

Origin blog.csdn.net/qq_36157085/article/details/102700992