docker创建容器需要写一堆命令分别创建容器,像以下命令创建一个mysql服务:
docker run \
-p 3306:3306 \
--name mysql \
-v /data/soft/mysql/conf.d:/etc/mysql/conf.d:rw \
-v /data/soft/mysql/data:/var/lib/mysql:rw \
-v /data/soft/mysql/log:/var/log/mysql:rw \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql
如果有多个容器,则需要一个个敲过去或者为每个容器编写dockerfile,换个环境又得再敲这么多次命令,需要维护这么多命令和文件不仅复杂而且容易出错。docker-compose为我们提供了一种更优雅的方式编排多个容器,我们只需要创建一个docker-compose.yml文件即可搞定。例如,我们用docker-compose创建kafka消息服务,在docker-compose.yml文件内输入以下内容:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper:latest
container_name: htl2-zookeeper
ports:
- "2181:2181"
restart: always
kafka:
image: wurstmeister/kafka:latest
container_name: htl2-kafka
volumes:
- /etc/localtime:/etc/localtime
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
然后在文件所在目录运行以下命令系统即可自动为您拉取镜像,根据配置内容自动创建容器并启动。
docker-compose up -d
以后换个环境只需要把这个文件拷贝过去即可,是不是更方便了呢,下面介绍下docker-compose的安装。
1.执行安装命令、安装不同版本可以替换中间的1.26.0
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
可以在官网看下有哪些版本,https://docs.docker.com/compose/release-notes/
2.授权可执行权限
sudo chmod +x /usr/local/bin/docker-compose
如果命令docker-compose在安装后失败,请检查您的路径。还可以创建指向/usr/bin或路径中任何其他目录的符号链接。
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.查看安装版本信息
docker-compose --version
4.失败情况处理
若失败提示/usr/local/bin/docker-compose: line 1: Not: command not found,则使用pip安装。
先安装 pip ,检查是否已有:
pip -V
若报错:-bash: pip: command not found,则安装pip :
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
重新安装Docker-Compose:
pip install docker-compose
检查是是否成功:
docker-compose -version