docker_compose使用

简化 docker run 命令到一个 配置文件 xxx.yml 中


  1. 安装 docker-compose

    1
    root@ubuntu:~# apt install docker-compose
  2. 编写一个简单的 yml 文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    root@ubuntu:~# vi docker-compose.yml

    # 加入以下内容
    version: '2'
    services:
    registry11:
    image: registry
    container_name: my_registry44
    ports:
    - "11223:5000"
    volumes:
    - /opt/docker/registry:/var/lib/registry
    - /root/auth:/auth
    environment:
    - REGISTRY_AUTH="htpasswd"
    - REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm"
    - REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
    • 上面的内容等同于,用户密码认证参考:docker_自建私有仓库.md

      1
      2
      3
      4
      5
      6
      7
      8
      $ docker run -d -p 11223:5000 \
      --name my_registry44 \
      -v /opt/docker/registry:/var/lib/registry \
      -v /root/auth:/auth \
      -e "REGISTRY_AUTH=htpasswd" \
      -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
      -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
      registry
  3. 启动容器

    1
    2
    3
    4
    5
    6
    7
    root@ubuntu:~# docker-compose up -d # 启动
    Creating my_registry44

    root@ubuntu:~# docker-compose ps # 查看
    Name Command State Ports
    --------------------------------------------------------------------------------
    my_registry44 /entrypoint.sh /etc/docker ... Up 0.0.0.0:11223->5000/tcp
    • 外部访问以下:ok

      这里写图片描述

  4. 停止容器

    1
    2
    3
    4
    5
    6
    7
    root@ubuntu:~# docker-compose stop # 停止
    Stopping my_registry44 ... done

    root@ubuntu:~# docker-compose ps # 查看
    Name Command State Ports
    ---------------------------------------------------------------
    my_registry44 /entrypoint.sh /etc/docker ... Exit 2

使用 yml 配置就不用记一大串 run 命令了,且里面可以添加启动依赖,参考:https://deepzz.com/post/docker-compose-file.html


参考资料