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