Docker Compose 是一種用於經過使用單個命令建立和啓動 Docker 應用程序的工具。咱們可使用它來配置應用程序的服務。html
它是開發,測試和升級環境的利器。python
它提供如下命令來管理應用程序的整個生命週期:mysql
要實現 docker compose安裝,須要包括如下步驟:git
如下是在 Ubuntu 系統中安裝 Docker Compose 的說明:github
curl -L https://github.com/docker/compose/releases/到這個網址直接下載便可,可是我已經提早下載好了拖進來安裝便可web
建立一個 docker-compose.yml 配置文件:sql
root@localhost:/usr/local/docker/tomcat# vi docker-compose.yml 在這裏建立,docker-compose.yml文件,並編寫下面的內容
注意:在編寫配置文件是不可以是tab鍵只能使用空格鍵進行縮進docker
version: '3'
services:
webapp:
restart: always
image: training/webapp
container_name: webapp
ports:
- 5000:5000
下面是我電腦裏面的配置tomcat
version: '3' 制定服務器解析版本
services: 要啓動的服務器列表
tomcat: 服務器的名稱爲tomcat,隨便起不能夠重複
restart: always 這裏表示只要docker-compose啓動那麼tomcat也老是跟着啓動
image: tomcat 這裏表示鏡像名稱爲tomcat,若是沒有會自動的去docker遠程倉庫區拉去鏡像
container_name: tomcat 隨便啓,可是不可以出重複的
ports: 映射端口號
- "8080:8080"
參數說明:服務器
前臺運行:
suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up 前臺啓命令docker-compose up, 可是這種操做並很差會佔用主線程,阻止其餘線程操做
Creating network "python_default" with the default driver
Creating webapp ...
Creating webapp ... done
Attaching to webapp
webapp | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
後臺運行:
suchuanqi@UbuntuBase:/usr/local/docker/python$ docker-compose up -d 這裏是後臺啓動docker-compose,不會佔用當前主線程
Creating webapp ...
Creating webapp ... done
lusifer@UbuntuBase:/usr/local/docker/python$
運行效果:
經過docker-compose啓動了tomcat咱們能夠經過:
docker-compose logs -f tomcat 進行對tomcat日誌的打印工做,能夠看到日誌
docker-compose up
docker-compose up -d
docker-compose start
docker-compose stop 注意中止的時候必須在有docker-compose.yml的配置文件中進行使用
docker-compose down 這裏的刪除是在docker ps -a 刪除tomcat容器的,由於個人tomcat在docker-compose裏面進行設置
Docker Compose 運行 Tomcat
docker-compose.yml
配置文件:
version: '3'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- /usr/local/docker/tomcat/webapps/:/usr/local/tomcat/webapps/
environment:
TZ: Asia/Shanghai
開啓tomcat後記得在webapps裏面建立一個ROOT文件夾,而後在裏面建立一個index.html以供測試使用
Docker Compose 運行 mysql
建立
docker-compose.yml
配置文件:使用vi docker-compose.yml
建立該文件並進行編譯操做
version: '3'
services:
mysql:
restart: always
image: mysql:5.7
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4 這裏是設置字符及UTF-8
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1 這裏是忽略大小寫
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
咱們能夠經過
docker-compose logs -f mysql 進行日誌的查看
在關閉任何關於docker-compose的先關服務時必需要進入到有docker.compose.yml的文件夾使用:
docker-compose down 進行關閉,不能使用相似於docker stop xxxx等命名,由於這樣關閉的話就沒有使用docker-compose進行託管了
配置繼承環境下的docker-compose 也就是把mysql tomcat結合在一塊兒進行配置,具體以下所示, 而後部署一個項目:
咱們能夠經過:
/var/lib/docker/volumes 來進行訪問到mysql存放數據文件的的路徑