使用docker?compose快速配置一組容器服務詳解
需求分析
在開發(fā)工作中,經常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實現一個 Web 項目,除了 Web 服務容器本身,往往還需要再加上后端的數據庫服務容器等等
一、docker-compose介紹
Compose 項目是 Docker 官方的開源項目,負責實現對 Docker 容器集群的快速編排,docker-compose.yml是一個項目,項目是由一組相關的應用程序容器組成。服務是在docker-compose中定義的。項目中的某一個容器稱為服務

常見的關鍵字
- Services:(服務)是指一組定義了應用程序的容器
- volumes: 定義應用中使用的卷,用于持久化數據或與宿主機共享文件。
- image: 指定服務的鏡像名稱。
- environment: 設置服務容器的環(huán)境變量。
- command: 設置容器啟動時執(zhí)行的命令。
- environment: 設置服務容器的環(huán)境變量。
- restart: 設置服務容器的重啟策略,如always表示總是重啟。
- networks: 定義應用中使用的網絡,允許服務之間相互通信。
這里單獨介紹一下volumes
通過配置可以讓docker容器內的數據與本地系統(tǒng)的進行映射
volumes:
- ./db:/var/lib/mysql
二、配置一個docker-compose.yml
version: '3.1'
services:
dentistry_mysql:
image: mariadb:10.2 #代表使用的哪個鏡像 類似與docker run 指定的鏡像名稱
hostname: mysql57
ports: #代碼宿主機和容器中端口映射 類似與docker run -p 參數
- "3312:3306"
command: [
'--character-set-server=utf8mb4', #設置數據庫表的數據集
'--collation-server=utf8mb4_general_ci', #設置數據庫表的數據集
]
restart: always
environment: #代表給當前容器啟動指定環(huán)境 類似于docker run -e MYSQL_ROOT_PASSWORD=root
MYSQL_ROOT_PASSWORD: yunzhi
MYSQL_DATABASE: dentistry #這是指定在容器啟動時創(chuàng)建的初始數據庫的名稱。
volumes:
- ./db:/var/lib/mysql
networks:
- net
dentistry_redis:
image: "redis:latest"
ports:
- "6379:6379"
networks:
- net啟動docker-compose
docker-compose up -d

通過DataGrip進行測試連接

總結
通過Docker Compose,你可以更輕松地管理和部署復雜的應用程序,提高開發(fā)和部署效率。只需要配置一個yml文件,可以快速構建docker容器
參考資料
Docker Compose 官方文檔:https://docs.docker.com/compose/
菜鳥教程:https://www.runoob.com/docker/docker-compose.html
以上就是使用docker- compose快速配置一組容器服務詳解的詳細內容,更多關于docker- compose配置容器服務的資料請關注腳本之家其它相關文章!
- docker常用容器啟動docker-compose.yml配置文件使用
- 關于immich?docker-compose.yml配置文件詳解
- 在docker-compose.yml文件中配置容器的環(huán)境變量方式
- docker-compose.yml參數的用法(配置文件)
- Springboot使用docker-compose實現動態(tài)配置過程
- docker-compose配置并部署redis服務的實現
- 詳解Docker Compose配置文件參數
- Docker compose配置文件寫法及命令使用示例
- docker-compose安裝yml文件配置方式
- docker compose 一鍵部署分布式配置中心Apollo的過程詳解
- docker-compose部署配置jenkins的詳細教程
- Docker Compose 配置指南小結
相關文章
Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問題
這篇文章主要介紹了Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
IDEA使用Docker插件遠程部署項目到云服務器的方法步驟
這篇文章主要介紹了IDEA使用Docker插件遠程部署項目到云服務器的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

