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服務。

 

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