0
点赞
收藏
分享

微信扫一扫

Docker容器化部署实践Docker Compose



微信公众号:当程序员以后


Docker容器化部署实践Docker Compose_docker

上期我们讲了在​​Docker 容器化部署实践--入门​​讲了Docker作为云计算的优点以及它的安装常见命令。今天给大家介绍一个简单的编排工具docker compose。

在讲之前我继续沿用昨天的提到一个命令:


docker run -d -p 5000:5000 --name echo ubuntu:16.04 /bin/bash -c "while true; do echo 1; sleep 1; done"


启动好了之后我们可以通过​​docker logs -f echo​​查看容器内数字1的打印。

我们从上面可以看到整个操作起来相对比较繁琐,既要输入各个参数,又有版本号,标签等等。如果我们只是一个容器还好用个shell定义一个快捷方式就行。

但是我们往往有多个容器,多个容器相互关联。比如一个web项目,我们可能有db容器,缓存容器,离线任务的容器,日志容器等等,这个时候如果我们还用手动输入进行控制,不仅非常麻烦还容易出错。

这时通过shell自定义命令就显得吃力一点了,并且不能做到多服务启动重启等等。

所以Docker官方出了一款编排工具,叫Compose,它通过一个单独docker-compose.yml模板文件来定义一组相关的容器,简单的理解就是通过这种方式把对应的各个容器相互组装起来,进行启动,停止,删除。

Compose这是由Python语言编写,通过Docker提供的API进行容器的管理,使用操作也非常方便。

下面来看一个docker-compose.yml 的文件形式:

version: "3"  # 注意版本号
services: # 一个应用的容器,可以包括多个相同镜像容器实例
dev:
image: hub.yourdomain.com/test:1.0 # 镜像地址
command: python app.py # 容器执行命令
container_name: test  # 容器名
restart: always
volumes:
- ./docker:/data # 挂载地址
ports:
- "9527:9527" #端口
environment:
- PYTHONPATH=/data
- XXX_API_SETTINGS=XXX.config.dev
network_mode: bridge
extra_hosts: # 配置额外的host名称
- "test.yourdomain.com:127.0.0.1"
external_links: # 链接到外部容器
- redis:redis
- mysql:mysql

通过上面的简单配置,我们就能把多个容器链接处理好了:

通过docker-compose up dev就能把整个服务启动起来了​​并且把端口号已经环境变量地址等等都设置好了,非常方便。

下面我们来说一下docker-compose 安装,docker-compose 安装方式非常简单,一条命令就完事儿。


sudo pip install -U docker-compose


安装好了如果你Linux或者Mac终端是使用的ohmyzsh的话,可以在zshrc里面添加​plugins +=(docker-compose)​

Docker容器化部署实践Docker Compose_docker_02

给大家贴一下我自己常使用的自动补全命令行

​plugins=(git ruby autojump osx tmux zsh-syntax-highlighting brew-cask brew colored-man rsync sudo node-docs history-substring-search docker docker-compose fabric redis-cli cp zsh-autosuggestions )​

我简单介绍一下常使用的几个命令(和docker没有太多差别),更多的请参考 ​​docker-compose -h​​:


docker-compose logs dev  # dev 是定义service服务


通过Compose我们可以快速编写属于自己docker项目的启动配置文件,方便我们快速启动,重启服务,没有使用的同学可以用起来了,今天内容就先到这儿了。

容器化部署实践,我打算从基础操作到实战应用以一个系列进行分享,今天是第二篇docker-compose编排,后期我将持续分享更多相关内容,从容器化入门使用到部署实践编排技术,欢迎大家持续进行关注


欢迎免费加入我们一起进步

相关文章

​​Docker 容器化部署实践--入门​​

​​【私货】MongoDB 副本集的运维部署​​

​​聊聊Redis数据持久化备份​​

Docker容器化部署实践Docker Compose_重启_03



举报

相关推荐

0 条评论