Linux(Ubuntu):搭建Docker-Compose

1. Docker Compose 簡介及安裝

Docker Compose 是一種用於經過使用單個命令建立和啓動 Docker 應用程序的工具。咱們可使用它來配置應用程序的服務。html

它是開發,測試和升級環境的利器。python

它提供如下命令來管理應用程序的整個生命週期:mysql

  • 啓動,中止和重建服務
  • 查看運行服務的狀態
  • 流式運行服務的日誌輸出
  • 在服務上運行一次性命令

要實現 docker compose安裝,須要包括如下步驟:git

如下是在 Ubuntu 系統中安裝 Docker Compose 的說明:github

curl -L https://github.com/docker/compose/releases/到這個網址直接下載便可,可是我已經提早下載好了拖進來安裝便可web

  • 將應用程序環境變量放在 Docker 文件中以公開訪問。
  • 使用命令查看環境變量: cat /etc/environment
  • 具體給你顯示的環境變量爲:

     

  • 也就是說咱們把下載好的docker compose放到任意一個環境變量目錄下便可使用
  • 使用 mv docker-compose /usr/bin  把docker compose移動到該目錄下便可

     

  • 這個時候咱們能夠看到該權限爲和組權限爲suchuanqi 可讀可寫,但不能執行,並且是都不能執行,因此要對權限進行修改,使用命令 chown -R root:root docker-compose   進行修改,具體以下所示:

     

  •  而後設置可執行權限,具體命令以下所示: chmod +x docker-compose   即變爲可執行文件

      

  • 而後使用命令 docker-compose version 進行版本的查看,並驗證是否可以執行
  • 注意咱們真正的操做Docker是基於Docker Compose來進行操做的

2. Docker Compose 使用

建立一個 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"

參數說明:服務器

  • version:指定腳本語法解釋器版本
  • services:要啓動的服務列表
  • webapp:服務名稱,能夠隨便起名,不重複便可
  • restart:啓動方式,這裏的 always 表示老是啓動,即便服務器重啓了也會當即啓動服務
  • image:鏡像的名稱,默認從 Docker Hub 下載
  • container_name:容器名稱,能夠隨便起名,不重複便可
  • ports:端口映射列列表,左邊爲宿主機端口,右邊爲容器端口

前臺運行:

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日誌的打印工做,能夠看到日誌

3. Docker Compose 命令

前臺運行

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裏面進行設置

4. 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存放數據文件的的路徑
相關文章
相關標籤/搜索