一、多容器管理:docker-compost
### --- 多容器管理:docker-compost
~~~ docker提倡理念是“一个容器一个进程”,假设一个服务需要由多个进程组成,
~~~ 就需要多个容器组成一个系统,相互分工和配合对外提供完整的服务
~~~ 比如:博客系统
~~~ 组件1:mariadb
~~~ 组件2:WordPress 的 apache web
### --- 在启动容器时,同一台主机下如果两个容器之间需要由数据交流,
~~~ 使用--link选项建立两个容器之间的互联,前提是建立mariadb已经启动
docker start db
docker start MywordPress
### --- 停止:
docker stop db MywordPress
~~~ # OR
docker stop MywordPress 在docker stop db
二、docker-compose install
### --- docker-compose install
~~~ 容器编排工具,允许用户在一个模板(YAML格式)中定义一组相关联的容器,
~~~ 会根据--link等参数符容器的优先级进行排序
### --- docker-compse下载地址:
[root@localhost ~]# curl -L https://github.com/docker/compost/releases/download/1.14.0/docker-compse-uname-s -uname -m > /usr/local/bin/docker-compose
### --- 下载docker-compse配置文件
### --- 上传到/usr/local/bin/目录下
[root@localhost ~]# mv docker-compose /usr/local/bin/
[root@localhost ~]# chmod a+x /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose --version
docker-compose version 1.23.1, build b02f1306
### --- docker-compose用法
-f // 指定使用的yaml文件位置
ps // 显示所有容器信息
restart // 重新启动容器
logs // 查看日志信息
config -q // 验证yaml配置文件是否正确
stop // 停止容器
start // 启动容器;目前容器已经成为容器,启动
up -d // 启动容器姓名;目前镜像还未转换成容器;转换为容器
pause // 暂停容器
unpause // 恢复暂停
rm // 删除容器
### --- docker-compose yml演示:docker-compose yml文件
[root@localhost ~]# vim wordpress.yaml
version: '2'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
restart: always
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
[root@localhost ~]# mv wordpress.yaml docker-compose.yaml
[root@localhost ~]# docker-compose up -d
Creating network "root_default" with the default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
6ec7b7d162b2: Already exists
Creating root_db_1_ff0e170e8e51 ... done
Creating root_wordpress_1_d9be77414585 ... done
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63b42d67206c wordpress:latest "docker-entrypoint..." 2 minutes ago Up 2 minutes 0.0.0.0:8000->80/tcp root_wordpress_1_4d788639c1ba
8792d83ffa3e mysql:5.7 "docker-entrypoint..." 2 minutes ago Up 2 minutes 3306/tcp, 33060/tcp root_db_1_6e3eaf62dbab
[root@localhost ~]# docker-compose logs