Docker-compose实验

Docker-compose综合训练

一. 实验目的:

  1. 熟悉Docker-compose的基本工作原理;
  2. 熟悉Docker-compose安装
  3. 熟悉Docker compose命令基础
  4. 熟悉Docker compose配置文件

二. 实验环境:

Ubuntu16.04+Docker

三. 实验内容:

  1. 练习使用docker-compose

.实验练习:

采用二进制安装Compose

(1)先在github的release页面下载

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

(2)赋予权限

sudo chmod +x /usr/local/bin/docker-compose

(3)查看docker-compose的版本号:

docker-compose version

五、

(一)创建一个Python应用, 使用Flask,将数值记入Redis

1、建立一个应用的目录,创建Python文件

# mkdir python

# cd python

# vim 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)

# vim requirements.txt

flask

redis

2、创建 Dockerfile

在同一目录下,创建Dockerfile

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

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

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获取镜像

之后发现未正确对齐,出现错误

4、 启动应用

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

# docker-compose up

5、访问应用

打开另一个终端访问,不要Ctrl+C 停止服务,访问http://localhost:5000/

(二)创建一个Wordpress应用

1、 建立一个应用的目录

# mkdir wordpress

# cd wordpress 

2、创建 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

3、启动应用

# docker-compose up -d

4、确认

# docker-compose ps

5、访问应用

http://localhost:8000/

这里注意:有的人的图形界面浏览器不能访问,原因是没有安装nginx服务,可以在浏览器里面搜索试试看看有没有安装nginx服务。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章