发布时间:2024-12-09 17:01
前几天使用docker 部署了nexus等项目。今天尝试使用docker-compose部署一下项目。确实是很方便。做个记录
感谢一波博主:借鉴了少走弯路。hakusai22
先贴一个版本。虽然我还是不太清楚版本有什么关系。
[root@localhost ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-209.git7d71120.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Wed Mar 2 15:25:43 2022
OS/Arch: linux/amd64
Experimental: false
[root@localhost ~]# docker-compose version
docker-compose version 1.27.4, build 40524192
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
在此处分析以后得出结论。先贴一图:
There are several versions of the Compose file format – 1, 2, 2.x, and 3.x
This table shows which Compose file versions support specific Docker releases.
Compose file format | Docker Engine release |
---|---|
Compose specification | 19.03.0+ |
3.8 | 19.03.0+ |
3.7 | 18.06.0+ |
3.6 | 18.02.0+ |
3.5 | 17.12.0+ |
3.4 | 17.09.0+ |
3.3 | 17.06.0+ |
3.2 | 17.04.0+ |
3.1 | 1.13.1+ |
3.0 | 1.13.0+ |
2.4 | 17.12.0+ |
2.3 | 17.06.0+ |
2.2 | 1.13.0+ |
2.1 | 1.12.0+ |
2.0 | 1.10.0+ |
从官网看出docker engine 1.31.1对应的是3.1。然后贴出docker-compose.yml
version: "3.1" #此处使用30,31都可以
services:
tomcat:
image: 549414168/tomcat:v1
ports:
- 8080:8080
nexus:
image: 549414168/nexus:v1
ports:
- 8081:8081
也就是官网对应的版本是指yml中的version和docker-compose的版本无关。它只是一个工具。
然后先测试一下docker-compose是否可用。
docker-compose up
可以看到两个镜像都启动了容器并且同时运行了起来。
接下来学习一些docker-compose命令
docker-compose config ##检查docker-compose.yml配置文件中的问题,没有问题就打印出来。
docker-compose up -d ##启动服务,d为后台启动
docker-compose down ##停止所有up命令启动的容器
docker-compose rm ##删除所有停止状态的服务容器
docker-compose logs -f [servicesName] ## 查看日志
docker-compose images ##查看项目中所包含的镜像
docker-compose port serviceName port ##查看容器端口映射的公共端口
docker-compose ps ##列出项目目前的所有容器
docker-compose run serviceName Shell ##在指定服务上运行一个命令
docker-compose scale service1=num service2=num ##启动指定数量的服务
docker-compose stop、start ##停止启动容器,但不删除
docker-compose top [servicesName] ##查看各个服务器容器内的进程
docker-compose pause、unpause ##暂停回复暂停状态的服务