美文网首页
【运维】docker-compose入门

【运维】docker-compose入门

作者: 24c41111e47b | 来源:发表于2021-08-05 20:52 被阅读0次

docker可以使用单个镜像快速部署应用;docker-compose用于同一台机器上高效管理部署多个镜像;docker swarm 用于管理多台机器的集群容器;
kubernetes 也用于多台集群容器管理,是终极企业解决方案.

本文章主要记录总结,使用docker-compose中碰到的一些问题, 方便后续快速使用


项目编排&部署思路

项目背景:
go语言实现一个Helloworld项目,go项目依赖数据库Mysql功能,本地可以正常运行,现提出需求,需要快速部署到服务器。

操作步骤:
1.go项目根目录创建Dockfile文件,实现Docker镜像创建功能。
2.go项目根目录创建docker-compose.yaml文件,编排:mysql go项目.
3.数据库Mysql,将数据进行磁盘映射,容器销毁后数据即可保存在磁盘中

注意:
此处 Mysql使用的是远端镜像,go项目使用的是本地构建的方式;之后部署只需在服务端拉仓库代码,然后在服务端进行docker-compose up -d 进行构建即可;
当前你也可以先把go项目构建成镜像文件,然后推送到镜像仓库,然后在docker-compose.yaml中的go项目不使用本地构建方式依赖,直接依赖远端镜像,那么你可以在服务端直接用docker-compose.yaml文件进行编排部署

踩坑记

1.容器内访问127.0.0.1locahost, 并不是宿主机器的地址,只是容器内的回路地址
2.数据库需要使用工具mysqldump导出使用,不能自己手写,手写的格式错误
3.yaml顶部声明的版本和使用的docker-compose版本不匹配,导致编排失败
4.linux服务器上面,容器通信,可以直接使用容器名称,不用自定义网络, 即:使用容器名发起网络请求,和连接数据库
5.MacOS,容器通信,可以直接使用host.docker.internal 访问容器内网络

常用命令

清空不使用的废弃数据
docker system prune --all
docker volume prune
docker image prune

构建容器并运行
docker-compose up —build

构建容器并在后台运行
docker-compose up -d

构建容器
docker-compose build

查看日志
docker-compose logs -f

进入运行中的容器
docker exec -it name bash

导出数据库(指定库名)
mysqldump -uroot -p --databases mydatabase > ~/Downloads/mydata.sql

导入(指定数据库)
mysql -u username -p -D mydatabase < mydata.sql

导出(指定库名和表名)
mysqldump -uroot -p --databases mydatabase --tables mytable > ~/Downloads/mydata_mytable.sql

导入
mysql -u root -p
use mydatabase;
source mydata_mytable.sql


Docker、Docker-Compose、k8s区别和发展
docker compose的使用

相关文章

网友评论

      本文标题:【运维】docker-compose入门

      本文链接:https://www.haomeiwen.com/subject/zglvvltx.html