1、前言
- Docker Compose 是 Docker 官网编排(Orchestration)我的项目之一,负责疾速在集群中部署分布式应用。
- Compose 是一个用于定义和运行多个 Docker 应用程序的工具。应用 Compose,您能够应用 YAML 文件来配置应用程序。而后,应用一个命令,您能够从您的配置中创立并启动所有服务。
- Dockerfile 能够让用户治理一个独自的利用容器;而 Compose 则容许用户在一个模板(YAML 格局)中定义一组相关联的利用容器(被称为一个 project,即我的项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。
首先介绍几个术语
- 服务(service):一个利用容器,实际上能够运行多个雷同镜像的实例。
- 我的项目(project):由一组关联的利用容器组成的一个残缺业务单元。
可见,一个我的项目能够由多个服务(容器)关联而成,Compose 面向我的项目进行治理。
2、装置
👉 官网文档在这里
我才用 curl
形式为所有用户装置。(也能够用 apt-get
形式,具体参考文档)
# 下载 Docker Compose 的以后稳固版本(装置给所有服务器用户:/usr/local/bin)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
# 查看是否装置胜利
docker-compose -h
docker-compose --version # docker-compose version 1.29.2, build 5becea4c
# 对二进制文件利用可执行权限
chmod +x /usr/local/bin/docker-compose
3、卸载
通过 curl
装置 Compose CLI 插件,应用上面命令卸载
rm /usr/local/bin/docker-compose
4、常用命令
docker-compose up # 启动
docker-compose up -d # 后盾启动
# 进行应用程序,办法是 docker-compose down 在第二个终端的我的项目目录中运行,或者在启动应用程序的原始终端中按 CTRL+C。docker-compose down / CTRL + C
docker-compose stop
# 应用以下 down 命令敞开所有内容,齐全删除容器。传递 --volumes 给 Redis 容器应用的数据卷
docker-compose down --volumes
5、官网示例启动成果
示例配置在这里
- 启动日志
- 查看镜像
- 浏览器运行成果
阐明:
# 默认命名规定
# 默认的服务名: 文件名_服务名_num
# _num 代表正本,多个服务器,集群,高可用,高并发,负载平衡
composetest_redis_1
composetest_web_1
docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
6、docker-compose 网络
通过 docker-compose 启动的我的项目(蕴含多个服务),都在同一个网络下,能够通过服务名字拜访
- 查看
docker-compose
网络
[root@--- ~]# 👉👉docker network ls👈👈
NETWORK ID NAME DRIVER SCOPE
8d10d0e8db5e bridge bridge local
3fa1e11e2050 composetest_default bridge local # docker-compose 生成的
e8bf4fced9e2 host host local
0096a971fd2c mynet bridge local
6263db0933b9 none null local
0350d84612be redis bridge local
799426d70aa2 test-network bridge local
c143092e025f todo-app bridge local
[root@--- ~]# 👉👉docker network inspect 3fa1e11e2050👈👈
[
{
"Name": "composetest_default",
"Id": "3fa1e11e2050b81eb69691487789dd545d6ce3c36e686035c0a49db54f86b2f7",
"Created": "2021-10-10T15:46:29.084459645+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.21.0.0/16",
"Gateway": "172.21.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {"Network": ""},"ConfigOnly": false,"Containers": {"57876e08abc657e884e2f527d930e0ffc34d632928d38ae2e29efa03c91b1980": {"Name":"composetest_redis_1","EndpointID":"b1803007038c048525602a20da0c2aac73f8a87741ce127e84f89084fd2b75f0","MacAddress":"02:42:ac:15:00:03","IPv4Address":"172.21.0.3/16","IPv6Address":""},
"994a3c48416ace662a09b1179a695ee63c9a3c33fccefbb0886374260fcd6aab": {
"Name": "composetest_web_1",
"EndpointID": "cd7e479a22bd251c87214e27d033af3a1bf4164664457e9ceb8cf32f690cded7",
"MacAddress": "02:42:ac:15:00:02",
"IPv4Address": "172.21.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "composetest",
"com.docker.compose.version": "1.29.2"
}
}
]
[root@--- ~]#
7、docker-compose 启动容器常见问题
7.1、镜像更新之后容器服务没有更新
能够通过 docker inspect containerName 查看容器信息
启停容器并不会拉取最新镜像
docker-compose up -d
或者
docker-compose up -d 服务名
本篇完🎉🎉🎉,前面接着分享 docker-compose 1 分钟搭建 WordPress
,有趣味的话,麻烦看官点个赞,反对一下,谢谢啦😊
🎈🎈🎈
🌹 继续更文,关注我,你会发现一个虚浮致力的宝藏前端😊,让咱们一起学习,独特成长吧。
🎉 喜爱的小伙伴记得点赞关注珍藏哟,回看不迷路 😉
🎁 欢送大家评论交换, 蟹蟹😊