前言
在没有 docker-compose 之前,我们创建和启动一个容器方式如下:
1. 通过类似下面两种方式的命令来构建或者拉取一个 docker 镜像。
方式 1:创建 Dockerfile 文件来构建镜像 (命令最后的点别漏了~):
docker build -t registry.cn-beijing.aliyuncs.com/wangjihong/nacos-server:1.0.0 .
方式 2:直接从 Docker Hub 或者阿里云或者网易云等等平台拉取镜像。
docker pull registry.cn-beijing.aliyuncs.com/wangjihong/nacos-server:1.0.0
2. 使用命令 docker run … 来来依赖镜像创建并运行一个容器,中间还要加一些复杂的参数。
docker run –restart always –privileged=true -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=”mysql” -e MYSQL_MASTER_SERVICE_HOST=”www.wangjihong.com.cn” -e MYSQL_MASTER_SERVICE_PORT=”3300″ -e MYSQL_MASTER_SERVICE_DB_NAME=”nacos” -e MYSQL_MASTER_SERVICE_USER=”root” -e MYSQL_MASTER_SERVICE_PASSWORD=”123456″ -e MYSQL_SLAVE_SERVICE_HOST=”www.wangjihong.com.cn” -e MYSQL_SLAVE_SERVICE_PORT=”3301″ -v=/usr/local/dockerfiles/nacos/data:/home/nacos/data -v=/usr/local/dockerfiles/nacos/logs:/home/nacos/logs –name docker-nacos-server1.0.0 -d -p 8848:8848 registry.cn-beijing.aliyuncs.com/wangjihong/nacos-server:1.0.0
3. 使用命令 docker exec … 进入容器操作。
docker exec -it docker-nacos-server1.0.0 bash
4. 查看容器启动日志。
docker logs -f docker-nacos-server1.0.0
综上我们可以看出,运行单个 docker 容器我们要用命众多命令来管理容器,这种情况下若是只运行一个容器还好,但如果我们有一堆容器(如:mysql、kibana、elasticsearch 等等 …)需要执行的话,这样管理是极其麻烦的,利器 docker-compose 的出现便解决了此类问题。
What- 什么是 docker-compose
docker-compose 是一个批处理工具,我们可以通过配置一个 docker-compose.yml 文件去定义多个容器的应用,通过一条命令就可以根据 docker-compose.yml 文件创建出指定的容器,文件格式如下(使用 docker-compose.yml 部署微服务调用链监控组件 skywalking):
version: ‘2’
services:
elasticsearch:
image: elasticsearch:5.6
container_name: elasticsearch
ports:
– 9200:9200
volumes:
– ./es/data:/usr/share/elasticsearch/data
– ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
kibana:
image: kibana:5.6
container_name: kibana
ports:
– 5601:5601
links:
– elasticsearch:elasticsearch
depends_on:
– elasticsearch
environment:
ELASTICSEARCH_URL: http://elasticsearch:9200
skywalking:
image: weihanli/skywalking:5.0.0-GA
container_name: skywalking
ports:
– 10800:10800
– 11800:11800
– 12800:12800
– 8090:8080
volumes:
– ./skywalking/application.yml:/app/skywalking/config/application.yml
links:
– elasticsearch:elasticsearch
depends_on:
– elasticsearch
Why- 为什么要用 docker-compose
可参考前言介绍。
How- 如何使用 docker-compose
安装 docker-compose
从 github 上下载 docker-compose 二进制文件 https://github.com/docker/com… 并按描述安装。
1. 下载最新版的 docker-compose 文件。
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2. 添加可执行权限。
sudo chmod +x /usr/local/bin/docker-compose
3. 测试安装结果。
docker-compose –version
4. 安装 pip。
sudo pip install docker-compose
运行 docker-compose
1. 在 centos 上创建一个 docker-compose.yml 文件,里面写上自己的多容器内容,如上述 skywalking 对应的文件内容。
2. 最后在 centos 上打开 docker-compose.yml 所在的文件夹路径下执行 docker-compopse up 就可以启动了,如果需要后台启动则为 docker-compopse up -d。
总结
本文只是介绍了 docker-compose 基本内容,想深入了解可以自行查资料,嘿嘿。