docker-compose如何部署服务 (docker-compose安装后需要重启吗)

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