docker-compose部署容器

用docker-compose部署容器

    • 安装docker-compose
    • 编写docker-compose.yml文件
    • 根据docker-compose.yml文件部署镜像

安装docker-compose

查询docker版本号。

在host上执行。

sudo docker -v

根据查询到的版本号,在下列网站找到对应的docker-compose版本。

https://github.com/docker/compose/releases

指令安装只能安装到1.25.5版本。

执行下列命令,安装docker-compose。

docker-compose为单一可执行文件,将其放到/usr/local/bin中,给予文件执行权限即可使用。

当前使用的是1.25.5版本。

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

或者通过下列网址下载:

https://github.com/docker/compose/releases

推荐在github上下载最新的后用mov指令放到指定文件夹中

编写docker-compose.yml文件

docker-compose.yml将通过配置的方式代替docker run冗长的参数。

docker-compose.yml

# 文件格式版本号
# 通过 https://docs.docker.com/compose/compose-file/ 网站获取对应文件格式版本
version: "3.8"

services:

  # 配置master容器的参数
  master:

    # 设定使用的镜像
    image: 1259337898/big_data:env

    # 设定端口映射
    ports:
      - "8088:8088" # web应用程序状态查看界面
      - "9000:9000" # HDFS文件系统端口
      - "50070:50070"

    # 设定挂载的卷共享,通过该设置,可以在host与容器之间共享数据
    volumes:
      - /home/wmx/Documents/hadoop/master/share:/root/share

    # 主机名
    hostname: master

    #容器名
    container_name: master

    # 依赖关系。如此设定后,master会在worker01与worker02启动之后再启动。
    # 通过定义依赖关系,可以自定义容器的启动顺序。
    # 无法循环依赖。
    links:
      - worker01
      - worker02

    # 设定让容器持续运行
    tty: true

    # 网络配置
    networks:

      #此为自定义网络的名称,自定义网络的配置在文件的末尾
      hadoop_network:

        # 为master分配静态ip
        # 目的是为了自动配置/etc/hosts
        ipv4_address: 172.19.0.3

    # 将worker01与worker02的静态ip加入/etc/hosts中。
    extra_hosts:
      - "worker01:172.19.0.4"
      - "worker02:172.19.0.5"

  # 配置worker01容器的参数
  worker01:
    image: 1259337898/big_data:env
    volumes:
      - /home/wmx/Documents/hadoop/worker01/share:/root/share
    ports:
      - "50071:50070"
    hostname: worker01
    container_name: worker01
    tty: true
    networks:
      hadoop_network:
        ipv4_address: 172.19.0.4
    extra_hosts:
      - "master:172.19.0.3"
      - "worker02:172.19.0.5"

  # 配置worker02容器的参数
  worker02:
    image: 1259337898/big_data:env
    ports:
      - "50072:50070"
    volumes:
      - /home/wmx/Documents/hadoop/worker02/share:/root/share
    hostname: worker02
    container_name: worker02
    tty: true
    networks:
      hadoop_network:
        ipv4_address: 172.19.0.5
    extra_hosts:
      - "master:172.19.0.3"
      - "worker01:172.19.0.4"

# 自定义网络配置
networks:
  hadoop_network:
    ipam:
      config:
        # 设定网关与掩码
        - subnet: 172.19.0.0/16

根据docker-compose.yml文件部署镜像

进入docker-compose.yml的目录。

sudo docker-compose up -d
如果配置文件名为其他要加参数-fsudo docker-compose -f 文件名 up -d

通过docker exec命令可以进入启动容器的交互界面。

sudo docker exec -it master bash

sudo docker exec -it worker01 bash

sudo docker exec -it worker02 bash

再次部署容器时,必须删除上一次部署的容器(container)与网络(network)。

在删除容器之前,需要先停止容器。

sudo docker stop
停止所有容器:
sudo docker stop $(sudo docker ps -aq)
删除所有容器:
sudo docker container purne

你可能感兴趣的:(hadoop,分布式,mapreduce)