為什么要安裝Docker Compose 概述呢?
在使用 Docker 的時候,定義 Dockerfile 文件,停止容器,刪除容器,刪除鏡像,構建鏡像(docker build),發布服務、(docker run)等一系列的命令操作,如果是多個服務,這一套下來維護量是不是很大,人直接傻掉了
docker stop 容器
docker rmi 容器
docker images
docker rmi 鏡像
docker rmi 鏡像
docker build -t 服務 .
docker run -d --restart=always --name 服務 -v /usr/local/logs:/home/jar-logs -p 端口:端口 服務
所以就有了Docker Compose,使用 Docker Compose 可以輕松、高效的管理容器,它是一個用於定義和運行多容器 Docker 的應用程序工具
Docker Compose 概述概述
Compose 是一個用於定義和運行多容器 Docker 應用程序的工具。使用 Compose,您可以使用 YAML 文件來配置應用程序的服務。然后,使用一個命令,您可以從您的配置中創建並啟動所有服務
官方文檔安裝
Docer Compose下載安裝
運行以下命令下載 Docker Compose 的當前穩定版本:
對二進制文件應用可執行權限
因為docker-compose是一個可執行shell腳本文件,所以下載之后修改權限
[root@rzk ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@rzk ~]# sudo chmod +x /usr/local/bin/docker-compose
查看版本
[root@rzk ~]# docker-compose -v
docker-compose version 1.29.2, build 5becea4c
進入/usr/local/bin 查看是否有docker-compose文件
Docker-Compose實戰啟動springboot項目
編寫Dockerfile
[root@rzk jar]# cat Dockerfile
FROM java:8
COPY wxserver-0.0.1-SNAPSHOT.jar /wxserver.jar
CMD ["--server.port=80"]
EXPOSE 80
ENTRYPOINT ["java","-jar","/wxserver.jar"]
編寫docker-compose.yml
version: "3"
services:
web:
container_name: wxservice
build: ./wxserver-0.0.1-SNAPSHOT.jar
image: wxservice
ports:
- "80:80"
所需要就是一個本地可運行jar包,剛才編寫的一個Dockerfile,還有一個docker-compose.yaml
運行docker-compose
啟動一
docker-compose up
啟動二
docker-compose build (先構建)
構建成功后可以使用 docker images 查看鏡像
[root@rzk jar]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wxservice latest ee4ba610ce97 7 seconds ago 689MB
接下來就是啟動容器
[root@rzk jar]# docker-compose up
Creating wxservice ... done
Attaching to wxservice
wxservice |
wxservice | . ____ _ __ _ _
wxservice | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
wxservice | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
wxservice | \\/ ___)| |_)| | | | | || (_| | ) ) ) )
wxservice | ' |____| .__|_| |_|_| |_\__, | / / / /
wxservice | =========|_|==============|___/=/_/_/_/
wxservice | :: Spring Boot :: (v2.6.2)
wxservice |
wxservice | _ _ |_ _ _|_. ___ _ | _
wxservice | | | |\/|_)(_| | |_\ |_)||_|_\
wxservice | / |
wxservice | 3.4.1
啟動,停止,停止並且刪除,查看日志等命令
docker-compose ps 查看運行中的容器
[root@rzk jar]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------
wxservice java -jar /wxserver.jar -- ... Up 0.0.0.0:80->80/tcp,:::80->80/tcp
docker-compose stop 停止容器
[root@rzk jar]# docker-compose stop
Stopping wxservice ... done
^[[A[root@rzk jar]# docker-compose ps
Name Command State Ports
-------------------------------------------------------------
wxservice java -jar /wxserver.jar -- ... Exit 143
docker-compose down 停止並刪除容器鏡像
[root@rzk jar]# docker-compose down
Stopping wxservice ... done
Removing wxservice ... done
Removing network jar_default
總結docker-compose用到的一些命令
container_name: 自定義鏡像,容器名
build:構建當前文件夾下dockerfile定義的jar路徑
image: 鏡像名