docker-compose的安装:
官网文档:https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Docker Compose
-
docker Compse 是一个工具
-
这个工具可以通过一个yml文件定义多容器的docker 应用
通过一条命令就可以根据yml文件的定义去创建或者管理多个容器
docker-compose.yml :(三大概念)
-
Services: 一个service代表一个container,这个container 可以 从dockerhub的image 拉取来创建,或者是从本地的Dockerfile 文件 build 出来的image .
Service的启动类似docker run ,我们可以给其指定network或volume,所以可以给service指定network和volume的引用。
-
Networks
-
Volumes
compose file version:
Version2:只能在一台机器上运行多个容器;
Version3: 默认在一台机器上运行多个容器,也可以在多个机器上运行多个容器。
version: '3' services: wordpress: image: wordpress ports: - 8080:80 #将容器端口80映射到--->host主机上的8080端口 depends_on: - mysql #依赖于mysql,所以mysql容器先执行 environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_PASSWORD: root networks: - my-bridge #绑定network(引用后面的my-bridge) mysql: image: mysql:5.7 #从dockerhub上提取image environment: # mysql环竟变量的设置 MYSQL_ROOT_PASSWORD: root #密码 MYSQL_DATABASE: wordpress #创建数据库的名称 volumes: - mysql-data:/var/lib/mysql #数据的持久化,将容器的目录/var/lib/mysql映射到volumes:mysql-data networks: - my-bridge #绑定network(引用后面的my-bridge) (以上mysql 等于: docker run -d --network my-bridge -v mysql-data:/var/lib/mysql mysql:5.7) volumes: mysql-data: (相当于:docker volume create mysql-data) networks: my-bridge: driver: bridge
数据持久化(Data Volume):
VOLUME["/var/lib/mysql"]
docker run -v mysql:/var/lib/mysql
数据持久化(Bind Mouting)
docker run -v /home/aaa : /root/aaa (/home/aaa 为host主机目录, /root/aaa为容器目录)
-