Docker-Compose練習

運行一個鏡像,需要添加大量的參數。

可以通過Docker-Compose編寫這些參數。

Docker-Compose可以幫助我們批量的管理容器。

只需要通過一個docker-compose.yml文件去維護即可。

  • 下載Docker-Compose

# 1. 去GitHub官網搜索docker-compose,下載最新版本的Docker-Compose
# 2. 將下載好的文件,拖拽到Linux作業系統中
# 3. 需要將Docker-Compose文件名稱修改一下,給予DockerCompose文件一個可執行的許可權
mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose
# 4. 方便後期操作,配置一個環境變數
# 將docker-compose文件移動到/usr/local/bin,修改了/etc/profile文件,給/usr/local/bin配置到PATH中
mv docker-compose /usr/local/bin
vi /etc/profile
    export PATH=$JAVA_HOME:/usr/local/bin:$PATH
source /etc/profile
 
# 5. 測試一下
# 在任意目錄下輸入docker-compose
  • Docker-Compose管理MySQL和Tomcat容器

yml文件以key:value方式指定配置資訊

​ 多個配置資訊以換行+縮進的方式來區分

​ 在docker-compose.yml文件中,不要使用製表符

version:'3.1'
services:
  mysql:                     # 服務的名稱
    restart: always          # 代表只要Docker啟動,那麼這個容器就跟著一起啟動
    image: daocloud.io/library/mysql:5.7.4     # 指定鏡像路徑
    container_name: mysql    # 指定容器名稱
    ports:
      - 3306:3306        # 指定埠號的映射
    environment:
      MYSQL_ROOT_PASSWORD: root         # 指定MySQL的ROOT用戶登錄密碼
      TZ: Asia/Shanghai                 # 指定時區
    volumes:
      - /opt/docker_mysql-tomcat/mysql_data:/var/lib/mysql        # 映射數據卷
  tomcat:
    restart: always          # 代表只要Docker啟動,那麼這個容器就跟著一起啟動
    image: daocloud.io/library/tomcat:8.5.15-jre8     # 指定鏡像路徑
    container_name: tomcat    # 指定容器名稱
    ports:
      - 8080:8080        # 指定埠號的映射
    environment:
      MYSQL_ROOT_PASSWORD: root         # 指定MySQL的ROOT用戶登錄密碼
      TZ: Asia/Shanghai                 # 指定時區
    volumes:
      - /opt/docker_mysql-tomcat/tomcat_webapps:/usr/local/tomcat/webapps        # 映射數據卷
      - /opt/docker_mysql-tomcat/tomcat_logs:/usr/local/tomcat/logs        # 映射數據卷
  • 使用Docker-Compose命令管理容器

 在使用docker-compose的命令時,默認會在當前目錄下找docker-compose.yml文件

# 1. 基於docker-compose.yml啟動管理的容器
docker-compose up -d
# 2. 關閉並刪除容器
docker-compose down
# 3. 開啟|關閉|重啟已經存在的由docker-compose維護的容器
docker-compose start|stop|restart
# 4. 查看由docker-compose管理的容器
docker-compose ps
# 5. 查看日誌
docker-compose logs -f
  • docker-compose配置Dockerfile使用

使用docker-compose.yml文件以及Dockerfile文件在生成自定義鏡像的同時啟動當前鏡像,並且由docker-compose去管理容器

docker-compose.yml
# yml文件
version: '3.1'
services:
  ssm:
    restart: always
    build:                           # 構建自定義鏡像
      context: ../                   # 指定Dockerfile文件所在路徑
      dockerfile: Dockerfile         # 指定Dockerfile文件名稱
    image: ssm:1.0.1
    container_name: ssm
    ports:
      8081:8080
    environment:
      TZ: Asia/Shanghai
Dockerfile文件
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
# 可以直接啟動基於docker-compose.yml以及Dockerfile文件構建的自定義鏡像
docker-compose up -d
# 如果自定義鏡像不存在,會幫助我們構建出自定義鏡像,如果自定義鏡像已經存在,會直接運行這個自定義鏡像
# 重新構建的話
# 重新構建自定義鏡像
docker-compose build
# 運行前,重新構建
docker-compose up -d --build

 

Tags: