docker-compose(單機版的容器編排工具)python
前面咱們使用 Docker 的時候,定義 Dockerfile 文件,而後使用 docker build、docker run 等命令操做容器。
然而微服務架構的應用系統通常包含若干個微服務,每一個微服務通常都會部署多個實例,若是每一個微服務都要手動啓停,
那麼效率之低,維護量之大可想而知
使用 Docker Compose 能夠輕鬆、高效的管理容器,它是一個用於定義和運行多容器 Docker 的應用程序工具mysql
#詳細用法和解釋
http://www.jianshu.com/p/2217cfed29d7sql
#安裝(須要先安裝epel源)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@k8s129 ~]# yum install -y python2-pipdocker
##pip 加速(https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)
[root@k8s129 ~]#pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose數據庫
驗證是否安裝成功:
[root@k8s129 ~]# docker-compose -v
docker-compose version 1.24.1, build 4667896
[root@k8s129 ~]# docker-compose version
docker-compose version 1.24.1, build 4667896
docker-py version: 3.7.3
CPython version: 2.7.5
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
[root@k8s129 ~]# 架構
#使用compose 起鏡像,解決依懶關係,否則手動的,咱們須要先起mysql數據庫,而後在起wordpress容器。
#如今使用compose,只須要配置一下文件,一鍵啓動
[root@k8s129 my_wordpress]# cd my_wordpress/
[root@k8s129 my_wordpress]# vi docker-compose.yml
version: '3'tcp
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpresswordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:微服務
#啓動
[root@k8s129 my_wordpress]# docker-compose up
#後臺啓動 docker-compose up -d
Creating network "my_wordpress_default" with the default driver
Creating volume "my_wordpress_db_data" with default driver
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
8d691f585fa8: Already exists
cba12d3fd8b1: Pull complete
cda54d6474c8: Pull complete
412447ed0729: Pull complete
84de6fc539c3: Pull complete
#鏡像已經起來了。wordpress:latest 和 mysql:5.7
[root@k8s129 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fe4bd03b54f0 wordpress:latest "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:32768->80/tcp my_wordpress_wordpress_1
96866c91ece8 mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp my_wordpress_db_1
d3f63deec7e0 progrium/consul "/bin/start -server …" 16 hours ago Up 28 minutes 53/tcp, 53/udp, 8300-8302/tcp, 8400/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp consul
1ec8ce3a4ac4 registry "/entrypoint.sh /etc…" 4 days ago Up 28 minutes 0.0.0.0:5000->5000/tcp goofy_burnell
[root@k8s129 ~]# 工具
#這個時候網頁訪問32768端口(映射到容器80端口了)就能夠安裝wordpress 了
http://192.168.6.129:32768