Docker Compose

前言

突如其來的意外讓本該快樂的我快樂不起來了,感情回來一趟就上了一天線下,經歷了第一次坐救護車,遇上了一位特別倔的醫生,別人的一週 = 一週 48小時,個人一週 = 一週,問了問醫院說體溫正常三天後就能夠複查,沒想到仍是個人醫生說了算,沒想到又是她,就離譜,這周的狀態也不怎麼好,惟一能寫點的就是關於Docker Compose的了,以前啓docker都是直接用命令一個一個的啓動,以後潘老師說用docker-compose,寫好文件,一次就能啓動多個。html

docker-compose

Compose 是用於定義和運行多容器 Docker 應用程序的工具。經過 Compose,您可使用 YML 文件來配置應用程序須要的全部服務。而後,使用一個命令,就能夠從 YML 文件配置中建立並啓動全部服務。

安裝

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose -uname -s-uname -m > /usr/local/bin/docker-compose
# 下載 docker-compose 到 /usr/local/bin/docker-compose 中
$ sudo chmod +x /usr/local/bin/docker-compose 
# 給 docker-compose 執行權限
$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash\_completion.d/docker-compose 
# bash 自動補全

yaml文件

如下是一個yaml文件的模板,咱們把要啓動的程序的信息寫進去,在執行命令時便會編譯和啓動mysql

version: '3' # 定義版本,不指定默認爲版本 1,新版本功能更多 
services: # 容器,就像 docker run 
db: # 名稱,它也是 network 中 DNS 名稱 
image: mysql:5.7 # 鏡像,若是像自定義鏡像能夠不指定這個參數,而用 build 
volumes: # 定義數據卷,相似 -v 
- db_data:/var/lib/mysql 
- .:/aaa # 掛載當前目錄到容器中的 /aaa 無需使用絕對路徑 
restart: always # 相似 
--restart
# 'no' 默認,不自動重啓,覺得 no 是 yaml 關鍵字因此加引號 
# always 老是自動重啓 
# on-failure 當失敗時自動重啓,也就是 exit code 不爲 0 時 
# unless-stopped 除非手動中止,否者一直重啓 
environment: # 定義環境變量,相似 -e 
MYSQL_ROOT_PASSWORD: somewordpress 
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress 
MYSQL_PASSWORD: wordpress wordpress: # 第二個容器 
labels: com.example.description: "This label will appear on all containers for the web service" 
# 爲容器添加 Docker 元數據(metadata)信息。例如能夠爲容器添加輔助說明信息。
depends_on: 
# 幫助 compose 理解容器之間的關係 
# db 將會在 wordpress 以前被啓動 
# 關閉時 wordpress 將會在 db 以前關閉 
# 咱們指定只啓動 wordpress,db 也會跟着啓動 
- db image: wordpress:latest 
ports: # 端口,相似 -p - "8000:80" 
restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress 
WORDPRESS_DB_PASSWORD: wordpress volumes: # 可選,須要建立的數據卷,相似 docker volume 
create db_data: networks: # 可選,須要建立的網絡,相似 docker network create

Dockerfile

Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。
在項目目錄裏面新建Dockerfile文件,而後寫入相關內容,具體操做見相關教程:Docker Dockerfilegit

啓動

在項目目錄執行命令:github

docker-compose up -d

而後出現以下畫面:
image.png
而後輸入:web

docker-compose ps

查看正在運行的docker-compose的各類狀態。
image.pngspring

在這裏我是用的是mysql的環境,按照這篇教程寫的:第一節 數據庫初始化sql

總結

本覺得明天就能重見光明,沒想到明天是新的開始,這兩天調整一下狀態,下週開始好好工做,但願一切都會好的吧。docker

本文做者:河北工業大學夢雲智開發團隊 張文達

相關文章
相關標籤/搜索