Docker學習系列文章
1.Docker安裝與卸載詳細介紹
2.Docker常用命令介紹
3.Dockerfile 命令介紹
4.Docker Registry搭建與使用
5.Docker 數據管理
6.Docker三劍客Compose介紹與安裝
7.DockerCompose命令介紹與使用
一.Compose常用命令
以下命令中出現得[]裏得參數都是可選的
1、ps命令
列出所有運行容器
docker-compose ps
2、logs命令
查看容器日誌輸出,-f表示查看實時日誌,容器名錶示啓動後的容器名,不指定則查看所有啓動的容器
docker-compose logs [-f] [容器名]
3、port命令
打印綁定的公共端口,下面命令可以輸出demo1服務8080端口所綁定的公共端口
docker-compose port javayh 8080
4、build命令
構建或者重新構建服務
docker-compose build
5、start命令
啓動指定停止的容器, 如下實例中javayh 爲一個容器,如果不指定,則啓動所有已存在的
docker-compose start [javayh]
6、stop命令
停止已運行的容器,不指定則停止所有的
docker-compose stop [javayh]
7、rm命令
刪除指定容器,必須爲已停止的,如果不指定容器名,則刪除所有
docker-compose rm [javayh]
8、up命令
構建和啓動容器,-d爲後臺運行
docker-compose up [-d]
9、kill命令
通過發送SIGKILL信號來停止容器,不指定容器名則停止所有啓動中的容器
docker-compose kill [javayh]
二.Docker Compose配置文件屬性
1、version
指定docker-compose.yml文件的寫法格式
version:"3"
2、services
多個容器集合
services:
javayh1:
javayh2:
3、build
配置構建時,Compose會利用它自動構建鏡像,該值可以是一個路徑,也可以是一個對象,用於指定Dockerfile, .表示Dockerfile所在目錄的鏡像
services:
javayh:
build: .
4、command
覆蓋容器啓動後默認執行的命令
command: bundle exec thin -p 3000
5、dns
配置 dns 服務器,可以是一個值或列表
dns:
- 8.8.8.8
6、dns_search
配置DNS搜索域,可以是一個值或列表
dns_search:
- www.example.com
7、environment
環境變量配置,可以用數組或字典兩種方式
environment:
- DEBUG=1
8、env_file
從文件中獲取環境變量,可以指定一個文件路徑或路徑列表,其優先級低於environment指定的環境變量
env_file: .env
9、expose
暴露端口,只將端口暴露給連接的服務,而不暴露給主機
services:
javayh:
expose:
- 8080
10、image
指定服務所使用的鏡像
image: mysql
11、network_mode
設置網絡模式
network_mode: "bridge"
12、ports
對外暴露的端口定義,和expose對應
暴露端口信息 - “宿主機端口:容器暴露端口”
ports:
- "8763:8763"
- "8763:8763"
13、links
將指定容器連接到當前連接,可以設置別名,避免ip方式導致的容器重啓動態改變的無法連接情況
services:
javayh1:
# 服務名:別名
links:
- javayh2:demo
14、volumes
卷掛載路徑
volumes:
# 宿主機:容器
- /srv
三.docker-compose使用
3.1 編寫 docker-compose.yml 文件
version: "3"
services:
javayh:
container_name: javayh
# 注意這裏有 . 這裏可以些路徑,dockerfile容器的路徑
# 小編這裏都在一個路徑下
build: .
ports:
- "8001:8001"
3.2 啓動項目
-d 可選,表示後臺啓動
docker-compose up [-d]
3.3 多服務配置
3.3.1 配置兩個Dockerfile
內容基本上一樣,端口自行選擇
FROM java:8
ADD javayh-api-1.0.jar app.jar
EXPOSE 8001
ENTRYPOINT ["java","-jar","/app.jar"]
3.3.2 編制docker-compose.yml 文件
version: "3"
services:
javayh1:
container_name: javayh1
build: .
ports:
- "8001:8001"
javayh2:
container_name: javayh2
build: ./test/
ports:
- "8081:8081"
這裏需要主要,javayh2 build 在最後並沒有 .
一個文件內有一個即可,否則會報如下錯誤
[root@javayh javayh]# docker-compose up
ERROR: build path /root/javayh/test/ . either does not exist, is not accessible, or is not a valid URL.
3.3.3 啓動服務
docker-compose up
總結
由上面可見, docker-compose 減少了我們部署的次數,通過配置,我們既可以一鍵部署多個服務,對於微服務還是非常實用的
本文的分享暫時就到這裏,希望對您有所幫助
關注 Java有貨領取更多資料
聯繫小編。微信:372787553,帶您進羣互相學習
左側小編微信,右側獲取免費資料
- Java 設計模式學習代碼 https://github.com/Dylan-haiji/design-pattern
- SpringCloud學習代碼: https://github.com/Dylan-haiji/javayh-cloud
- AlibabaCloud學習代碼:https://github.com/Dylan-haiji/javayh-cloud-nacos
- SpringBoot+Mybatis 多數據源切換:https://github.com/Dylan-haiji/javayh-boot-data-soure
- Redis、Mongo、Rabbitmq、Kafka學習代碼: https://github.com/Dylan-haiji/javayh-middleware
- SpringBoot+SpringSecurity實現自定義登錄學習代碼:https://github.com/Dylan-haiji/javayh-distribution