菜鸟笔记
提升您的技术认知

docker compose编排容器-ag真人游戏

docker compose 是 docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。

使用compose 基本上分为三步:

  1. dockerfile 定义应用的运行环境
  2. docker-compose.yml 定义组成应用的各服务
  3. docker-compose up 启动整个应用

compose和docker兼容性

compose文件格式版本 docker版本
3.4 17.09.0
3.3 17.06.0
3.2 17.04.0
3.1 1.13.1
3.0 1.13.0
2.3 17.06.0
2.2 1.13.0
2.1 1.12.0
2.0 1.10.0
1.0 1.9.1.

 

直接从github下载即可,前提要先安装docker,版本要1.9.1以上

note that compose 1.8.0 requires docker engine 1.10.0 or later for version 2 of the compose file format, and docker engine 1.9.1 or later for version 1.

# curl -l https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod  x /usr/local/bin/docker-compose

也可以用pip或ag真人试玩娱乐官网的run.sh脚本安装

 

安装后确认

# docker-compose --version

 

3.1 创建一个python应用, 使用flask,将数值记入redis

3.1.1 建立一个应用的目录,创建python文件

# mkdir python
# cd python
# vi app.py 
from flask import flask
from redis import redis
app = flask(__name__)
redis = redis(host='redis', port=6379)
@app.route('/')
def hello():
    redis.incr('hits')
    return 'hello world! i have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=true)
# vi requirements.txt 
flask
redis 

3.1.2 创建 dockerfile

在同一目录下,创建dockerfile

# vi dockerfile 
from python:2.7
add . /code
workdir /code
run pip install -r requirements.txt
cmd python app.py

对上面的dockerfile做一下简单说明:

  • 容器使用python 2.7的镜像
  • 将当前目录下文件拷贝到容器内/code
  • 指定工作目录为/code
  • 安装python需要的库:flask, redis
  • 容器执行命令 python app.py

 

3.1.3 创建编排脚本

在同一目录下,创建 docker-compose.yml

# cat docker-compose.yml 
version: '2'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
    depends_on:
     - redis
  redis:
    image: redis

对上面的编排脚本做一下简单说明:

  • 这个应用定义了两个服务:web, redis
  • web容器通过当前路径下的dockerfile生成
  • web容器内的5000端口映射到主机的5000端口
  • 将当前目录挂载到web容器内/code
  • web容器依赖于redis容器
  • redis容器从docker hub获取镜像

 

3.1.4 启动应用

会执行编排脚本,分别制作和抓取web,redis镜像,启动容器

# docker-compose up

 

3.1.5 访问应用

http://localhost:5000/

 

3.2 其他命令

3.2.1 daemon模式启动/停止

# docker-compose up -d
# docker-compose stop

 

3.2.2 查看信息

# docker-compose ps

 

3.2.3 对容器执行命令(一次)

#docker-compose run services cmd

例如:查看web容器环境变量

# docker-compose run web env

 

3.3 创建一个wordpress应用

3.3.1 建立一个应用的目录

# mkdir wordpress
# cd wordpress

 

3.3.2 创建 docker-compose.yml

# cat docker-compose.yml 
version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      mysql_root_password: wordpress
      mysql_database: wordpress
      mysql_user: wordpress
      mysql_password: wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    links:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      wordpress_db_host: db:3306
      wordpress_db_password: wordpress

mysql的数据目录挂载到当前目录下,./.data/db不存在时会自动创建。

 

3.3.3 启动应用

# docker-compose up -d

 

3.3.4 确认

# docker-compose ps

 

3.3.5 访问应用

http://localhost:8000/

 

初始化设置后,就可以看到wordpress的页面

 

网站地图