Docker-compose安裝及使用教程


docker-compose安裝

方法一:
首先執行pip -V確認是否已安裝pip,若提示“未找到命令…”則根據以下步驟執行,若顯示pip版本則直接執行步驟2安裝即可!
1、安裝pip :wget https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py

2、安裝docker-compose:pip install docker-compose

等待安裝完成后即可執行docker-compose version查看版本

方法二:
1、去github搜索docker-compose,選擇版本下載
https://github.com/docker/compose/releases
2、將下載好的文件傳入linux系統中,並重命名未docker-compose
mv docker-compose-Linux-…… docker-compose
3、給予docker-compose文件可執行權限
chmod u+x docker-compose
4、為方便后期操作,配置環境變量
將docker-compose文件移至/usr/local/bin,修改/etc/profile文件,將/usr/local/bin添加至PATH中
mv docker-compose /usr/local/bin
vim /etc/profile
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/bin
5、重新加載profile文件配置
source /etc/profile
6、驗證docker-compose,查看其版本
docker-compose version

編寫docker-compose.yml文件

yml文件格式要求非常嚴格,一定要細心,執行過程中若有報錯,可根據報錯信息找到並修改文件中的錯誤
yml文件以鍵值對的形式來配置信息【key: value】value前有個空格
多個配置信息以換行+兩個空格的縮進方式來區分,回車換行后點兩下空格鍵,不要使用Tab鍵
在docker-compose文件中不要使用制表符

# 示例,使用是請刪除注釋及所有注釋前的空格:
version: '3.7'    				#撰寫文檔格式版本號,若不清楚請百度Docker Engine與docker-compose version 之間的關系,選擇對應版本,版本號不對會報錯
service:
  mysql:						#項目名稱,可以自定義
    restart: always				#開機自啟,表示docker啟動則此容器跟着啟動
    images: daocloud.io/library/mysql:8.0.2		#指定鏡像路徑
    container_name: mysql						#指定容器的名稱
    ports:						 #配置端口
      - 3398:3306                #指定端口的映射,-后有個空格
    environment:				 #配置環境
      MYSQL_ROOT_PASSWORD: root  #指定Mysql的root用戶登錄密碼
      TZ: Asia/Shanghai			 #指定時區
    volumes:					 #配置數據卷
      - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql	#映射數據卷
# ************下面配置信息形式同上,不再做說明**********
  tomcat:						
    restart: always
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container_name: tomcat
    ports:
      - 8083:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
      - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

以上示例中根據數據卷映射條件,需要先在Linux系統中/opt/目錄下創建docker_mysql_tomcat目錄,才可正常啟動容器

docker-compose.yml文件編寫完成后傳入linux系統中,或者直接在linux系統中創建並編輯文件后即可使用docker-compose相關命令對容器進行操作

docker-compose常用命令

在使用docker-compose命令時,默認在當前目錄下找docker-compose.yml文件
啟動由docker-compose.yml管理的容器:docker-compose up -d

查看由docker-compose管理的容器:docker-compose ps

關閉並刪除由docker-compose管理的容器:docker-compose down

啟動/停止/重啟已存在的且由docker-compose管理的容器:docker-compose start/stop/restart

掛起/恢復由docker-compose管理的容器:docker-compose pause/unpause

查看由docker-compose管理的所有容器運行進程:docker-compose -f docker-compose.yml top

查看由docker-compose管理的指定某一個容器運行進程:docker-compose -f docker-compose.yml top mysql

查看滾動日志:docker-compose logs -f
示例中已將日志映射到/usr/local/tomcat/logs目錄中,可直接去文件內查看,工作中主要以此種方式查看日志

示例中容器啟動后通過Navicat測試可成功連接

docker-compose配合Dockerfile部署項目

編寫docker-compose.yml文件

version: '3.7'
services:
  test1:                        #項目名稱
    restart: always             #開機自啟
    build:                      #構建自定義鏡像
      context: ../              #指定Dockerfile文件路徑,../指Dockerfile文件在docker-compose.yml文件的上一層
      dockerfile: Dockerfile    #指定Dockerfile文件名
    image: test1:1.0            #通過上面build構建的鏡像名稱
    container_name: test1       #容器名稱
    ports:
    - 8082:8080                 #端口映射
    environment:
      TZ: Asia/Shanghai         #指定時區

編寫Dockerfile文件(關於Dockerfile文件編寫,請查看博客:https://blog.csdn.net/Q0717168/article/details/109299009

from daocloud.io/library/tomcat:9.0.36-jdk8-corretto
copy test1.war /usr/local/tomcat/webapps/
maintainer duanyadian 7852***076@163.com

在linux系統中創建docker_test目錄,進入該目錄,傳入test1.war包和Dockerfile文件,然后在docker_test目錄下創建docker-compose目錄,進入該目錄,導入docker-compose.yml文件,這三個文件的關系要與docker-compose.yml中context路徑一致,可以在window上整理好后通過ftp傳入linux系統中

啟動該項目:docker-compose up -d

通過瀏覽器查看項目已成功啟動

通過命令也可以看到項目已經是運行狀態

你可能已經注意到上面的黃色警告
WARNING: Image for service test1 was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
該警告是提示鏡像已經構建,它已經不存在了。如果需要重建,必須使用docker-compose build或者docker-compose up --build進行重建。也就是說再次啟動的時候它不會根據Dockerfile文件進行構建了,而是根據已經構建好的鏡像再次重建。
docker-compose up -d 命令可以直接啟動基於docker-compose.yml及Dockerfile文件構建的自定義鏡像;如果自定義鏡像不存在,則會幫助我們構建自定義鏡像,如果自定義鏡像已存在,則會直接運行自定義鏡像

重新構建容器:docker-compose build


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM