前言
在没有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基本内容,想深入了解可以自行查资料,嘿嘿。