Docker Compose创建镜像服务
什么是Docker Compose
使用Docker Compose,可以使用YAML配置文件(称为Compose文件)来配置应用程序的服务,然后使用Compose CLI从配置中创建并启动所有服务 。
Compose文件的默认路径是compose.yaml(首选)或compose.yml放置在工作目录中。Compose 还支持docker-compose.yaml和docker-compose.yml以向后兼容早期版本。如果两个文件都存在,Compose 会首选规范的compose.yaml。
Compose文件或文件遵循Compose规范提供的有关如何定义多容器应用程序的 compose.yaml规则。这是正式Compose规范的Docker Compose实现。
Docker Compose 的主要优点
官文机翻:
使用 Docker Compose 具有多种优势,可以简化容器化应用程序的开发、部署和管理:
简化控制:Docker Compose 允许您在单个 YAML 文件中定义和管理多容器应用程序。这简化了编排和协调各种服务的复杂任务,使管理和复制应用程序环境变得更加容易。
高效协作:Docker Compose 配置文件易于共享,促进开发人员、运营团队和其他利益相关者之间的协作。这种协作方法可实现更顺畅的工作流程、更快的问题解决速度并提高整体效率。
快速应用程序开发:Compose 缓存用于创建容器的配置。当您重新启动未更改的服务时,Compose 会重新使用现有容器。重复使用容器意味着您可以非常快速地更改环境。
跨环境的可移植性:Compose 支持 Compose 文件中的变量。您可以使用这些变量针对不同的环境或不同的用户自定义您的组合。
广泛的社区和支持:Docker Compose 受益于充满活力的社区,这意味着丰富的资源、教程和支持。这个社区驱动的生态系统有助于 Docker Compose 的持续改进,并帮助用户有效地解决问题。
安装镜像示例
以安装Portainer举例,Portainer是一个docker图形化管理工具。
编写docker-compose文件
Portainer部署的步骤比较简单,我们还是以docker-compose文件的形式完成Portainer的安装,首先我们需要需要编写的名为docker-compose.yml的文件,内容如下
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/docker/sys/portainer:/data
完成后,我们将这个文件上传到我们的服务器即。
初始化并配置容器
将配置文件上传之后我们就可以尝试启动了,为了方便查看服务是否可以正常启动,我们还先以前台运行的方式启动,到达docker-compose.yml文件位置,键入前台启动命令
# 安装成功,如需后台运行,添加参数:-d
docker-compose -f docker-compose.yml up
执行日志
[root@centos72 portainer]# docker compose -f ./docker-compose.yml up
WARN[0000] /opt/docker/sys/portainer/docker-compose.yml: `version` is obsolete
[+] Running 12/12
✔ portainer Pulled 88.6s
✔ dc8df0f2921e Pull complete 0.6s
✔ c82aa9c9fb45 Pull complete 0.6s
✔ d40df14c1d7a Pull complete 33.2s
✔ a3939f2dc487 Pull complete 37.9s
✔ 204b2fbb824e Pull complete 39.9s
✔ a53c840f28bf Pull complete 66.2s
✔ 9e1dadc4be73 Pull complete 67.1s
✔ 6f01ec19fa2b Pull complete 69.4s
✔ e2f767fe3885 Pull complete 71.5s
✔ 793e77bf062e Pull complete 72.7s
✔ 4f4fb700ef54 Pull complete 73.8s
[+] Running 2/2
✔ Network portainer_default Created 0.1s
✔ Container portainer Created 2.2s
Attaching to portainer
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:370 > encryption key file not present | filename=portainer
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:393 > proceeding without encryption key |
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/database/boltdb/db.go:125 > loading PortainerDB | filename=portainer.db
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/internal/ssl/ssl.go:80 > no cert files found, generating self signed SSL certificates |
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/chisel/service.go:228 > generated a new Chisel private key file | private-key=/data/chisel/private-key.pem
portainer | 2025/01/20 13:00:46 server: Reverse tunnelling enabled
portainer | 2025/01/20 13:00:46 server: Fingerprint u12NgE5z0p1l4BzifRiZq3cCd8PY5RFTYnwADFGdV1xxeLgw8=
portainer | 2025/01/20 13:00:46 server: Listening on http://0.0.0.0:8000
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/cmd/portainer/main.go:655 > starting Portainer | build_number=137 go_version=go1.21.13 image_tag=linux-amd64-2.21.5 nodejs_version=18.20.5 version=2.21.5 webpack_version=5.88.2 yarn_version=1.22.22
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/http/server.go:370 > starting HTTPS server | bind_address=:9443
portainer | 2025/01/20 01:00PM INF github.com/portainer/portainer/api/http/server.go:354 > starting HTTP server | bind_address=:9000
portainer | 2025/01/20 01:05PM INF github.com/portainer/portainer/api/adminmonitor/admin_monitor.go:62 > the Portainer instance timed out for security purposes, to re-enable your Portainer instance, you will need to restart Portainer |
当控制台没有输出错误,并显示正常启动后,我们分开服务器的9000端口,浏览器输入服务器ip:9000,即可进入Portainer初始化界面,它会要求我们配置用户名密码:
完成账户密码初始化之后,我们点击local进行服务器本地容器管理
常用命令
#从compose.yaml文件中启动所定义的服务
docker compose up
#停止并删除正在运行的服务
docker compose down
#查看容器输出日志
docker compose logs
# 查看所有服务与状态
docker compose ps
参考:堪称最优秀的Docker可视化管理工具——Portainer你真的会用吗?-腾讯云开发者社区-腾讯云
官方文档:How Compose works | Docker Docs
原文地址:https://blog.csdn.net/jilo88/article/details/145289442
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!