使用docker compose一鍵部署多個服務的方法
docker compose 是 docker 官方的開源項目,用來實現對 docker 容器集群的快速編排
下載安裝
官網下載地址:點這里
我用的是云服務器,所以就直接用yum安裝了,直接執(zhí)行這兩條命令,等安裝結束后查看版本,看到版本號表示安裝成功


下面還有一種手動安裝的方式,因為是訪問的github,我的服務器一直訪問失敗,就只能用上面那種方式了

不使用 compose 部署項目
我這里用一個springboot項目來測試,只寫了一個接口,訪問redis和mysql
編寫dockerfile來構建鏡像
FROM java:8 MAINTAINER vhukze # 指定臨時文件夾為/tmp VOLUME /tmp # 將jar包添加到容器中重命名為my-docker.jar ADD docker-test.jar my-docker.jar # 運行jar包 RUN bash -c 'touch /my-docker.jar' ENTRYPOINT ["java","-jar","/my-docker.jar"] # 暴露8888端口 EXPOSE 8888
把項目的jar包和Dockerfile文件上傳到服務器,我這里放到了/mydocker路徑下

使用命令構建鏡像(注意最后的點,表示Dockerfile文件在當前目錄下)
docker build -t my-docker:1.0 .
稍等一會兒之后,構建成功,查看鏡像

這里代碼訪問的redis和mysql同樣是docker中啟動的

使用my-docker鏡像啟動一個容器
docker run -d -p 8888:8888 my-docker:1.0
不使用compose,需要單獨啟動三個容器,執(zhí)行三遍docker run
使用 compose 部署項目
編寫docker-compose.yml文件,并上傳到服務器的/mydocker 路徑下
version: "3"
# 多個服務
services:
# my-docker服務
myDockerService:
# 鏡像名稱和版本
image: my-docker:1.0
# 啟動的容器名稱
container_name: my-docker
# 端口
ports:
- 8888:8888
# 容器數據卷
volumes:
- /app/myDocker:/data
# 網絡模式 (最下方自定義的一個網絡模式)
networks:
- my_net
# 依賴的服務(表示需要依賴的服務先啟動)
depends_on:
- redis
- mysql
# redis 服務
redis:
image: redis
ports:
- 6666:6379
volumes:
- /app/redis/redis.conf:/etc/redis/redis.conf
- /app/redis/data:/data
networks:
- my_net
# 啟動命令
command: redis-server /etc/redis/redis.conf
# mysql服務
mysql:
image: mysql:5.7
# mysql 相關配置
environment:
MYSQL_ROOT_PASSWORD: '123456'
MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
MYSQL_DATABASE: 'testdb'
MYSQL_USER: 'vhukze'
MYSQL_PASSWORD: 'vhukze'
ports:
- 3306:3306
volumes:
- /app/mysql/db:/var/lib/mysql
- /app/mysql/conf/my.cnf:/etc/my.cnf
- /app/mysql/init:/docker-entrypoint-initdb.d
networks:
- my_net
# 解決外部無法訪問問題
command: --default-authentication-plugin=mysql_native_password
# 創(chuàng)建自定義網絡模式
networks:
my_net: 使用同一個自定義網絡模式,互相之間可以通過服務名稱訪問,修改項目配置文件,把redis和mysql的ip改為服務名稱(注意這里redis的端口要改成容器內使用的端口,因為是容器之間互相訪問,不會走宿主機的端口)

再次打包項目上傳到服務器,使用Dockerfile構建鏡像
在docker-compose.yml所在目錄執(zhí)行下面命令,檢查語法是否有誤
執(zhí)行之后沒有任何輸出,表示語法沒有問題
docker compose config -q
使用docker-compose啟動三個容器
在docker-compose.yml所在目錄執(zhí)行下面命令
docker compose up -d
可以看到網絡模式和三個容器都創(chuàng)建完成了


使用瀏覽器訪問my-docker項目的接口,訪問成功

一鍵停止并刪除
docker compose down
一鍵停止
docker compose stop
一鍵啟動
docker compose start
一鍵重啟
docker compose restart
結論是 通過docker-compose可以一鍵創(chuàng)建和刪除多個容器
到此這篇關于使用docker compose一鍵部署多個服務的文章就介紹到這了,更多相關docker compose多個服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker 部署 Elasticsearch kibana及ik分詞器詳解
這篇文章主要介紹了docker 部署 Elasticsearch kibana及ik分詞器詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05
Docker 部署單機版 Pulsar 和集群架構 Redis(開發(fā)神器)的方法
這篇文章主要介紹了Docker 部署單機版 Pulsar 和集群架構 Redis(開發(fā)神器)的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
用docker部署RabbitMQ環(huán)境的詳細介紹
這篇文章主要介紹了用docker部署RabbitMQ環(huán)境,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07

