ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker与docker-compose从项目角度出发查看异同

2022-04-22 19:03:31  阅读:160  来源: 互联网

标签:core compose 异同 harbor registry docker root


docker

是一个供开发和运维人员开发,测试,部署和运行应用的容器平台。这种用linux container部署应用的方式叫容器化。
http://mirrors.163.com/docker-ce/linux/static/stable/x86_64/

 docker-compose

是一个用于运行和管理多个容器化应用的工具(一系列的容器)
https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64
https://github.com/docker/compose/releases/ #有各种版本

docker和 docker-compose二者对比下:

1.docker是自动化构建镜像,并启动镜像。 docker compose是自动化编排容器。
2.docker是基于Dockerfile得到images,启动的时候是一个单独的container
3.docker-compose是基于docker-compose.yml,通常启动的时候是一个服务,这个服务通常由多个container共同组成,并且端口,配置等由docker-compose定义好。
4.两者都需要安装,但是要使用docker-compose,必须已经安装docker

docker应用实例:

# centos7
# 从阿里云直接下载docker-ce.repo文件
[root@centos7 ~]#wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@centos7 ~]#yum repolist 
[root@centos7 ~]#yum list docker-ce* --showduplicates | sort -r
[root@centos7 ~]#yum -y install docker-ce-19.03.13-3.el7 docker-ce-cli-19.03.13-3.el7
# centos安装完后需要手动启动docker
[root@centos7 ~]#systemctl enable --now docker

#查看版本,验证安装成功
[root@centos7 ~]#docker --version
Docker version 19.03.13, build 4484c46d9d

以下docker-compose是重点

docker-compose应用实例(用docker-compose方式管理harbor):

 

docker ps 启动的容器,都是harbor相关的一系列容器

 

[root@fp-web-169 harbor]# docker ps
CONTAINER ID        IMAGE                                               COMMAND                  CREATED             STATUS                  PORTS                       NAMES
ce658cd5d04e        goharbor/nginx-photon:v1.8.0                        "nginx -g 'daemon of…"   4 months ago        Up 4 months (healthy)   0.0.0.0:80->80/tcp          nginx
5be3c8cd5f4d        goharbor/harbor-portal:v1.8.0                       "nginx -g 'daemon of…"   4 months ago        Up 4 months (healthy)   80/tcp                      harbor-portal
7c9bfd2d4693        goharbor/harbor-jobservice:v1.8.0                   "/harbor/start.sh"       4 months ago        Up 4 months                                         harbor-jobservice
50133b195021        goharbor/harbor-core:v1.8.0                         "/harbor/start.sh"       4 months ago        Up 4 months (healthy)                               harbor-core
f8c82eb02dcb        goharbor/harbor-db:v1.8.0                           "/entrypoint.sh post…"   4 months ago        Up 4 months (healthy)   5432/tcp                    harbor-db
748be8a5a061        goharbor/registry-photon:v2.7.1-patch-2819-v1.8.0   "/entrypoint.sh /etc…"   4 months ago        Up 4 months (healthy)   5000/tcp                    registry
de2b1a33cd0c        goharbor/redis-photon:v1.8.0                        "docker-entrypoint.s…"   4 months ago        Up 4 months             6379/tcp                    redis
039ca1596261        goharbor/harbor-pctl:v1.8.0                  "/harbor/start.sh"       4 months ago        Up 4 months (healthy)                                      pctl
3d724b925790        goharbor/harbor-log:v1.8.0                          "/bin/sh -c /usr/loc…"   4 months ago        Up 4 months (healthy)   127.0.0.1:1514->10514/tcp   harbor-log

 

首先安装docker-compose : wget https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64

harbor相关维护命令:
#启动Harbor

# docker-compose start
停止Harbor
# docker-comose stop
重启Harbor
# docker-compose restart

#################################################################

启动 harbor
docker-compose up -d

关闭 harbor
docker-compose down -v

#################################################################

查看状态

docker-compose ps

查看 log
/var/log/harbor
###在harbor.cfg中设定

#################################################################

在Harbor安装完成之后,在此目录下会生成 docker-compose.yml 配置文件,可以使用docker-compose操作此文件来控制Harbor的启停。

#docker-compose down

##加载配置文件
./prepare
###启动所有后台所有服务
docker-compose up -d

 docker-compose配置文件 docker-compose.yml 创建harbor仓库,相关文件

[root@fp-web-169 harbor]# locate docker-compose
/data/harbor/docker-compose.yml
/usr/local/bin/docker-compose

[root@fp-web-169 harbor]# ll /data/harbor

drwxr-xr-x 3 root root 19 May 22 2019 common
-rw-r----- 1 root root 5183 May 27 2019 docker-compose.yml
-rw-r--r-- 1 root root 4866 May 27 2019 harbor.yml
-rwxr-xr-x 1 root root 5088 May 16 2019 install.sh
-rw-r--r-- 1 root root 11347 May 16 2019 LICENSE
-rwxr-xr-x 1 root root 1654 May 16 2019 prepare
drwxr-xr-x 2 root root 79 May 22 2019 ssl

[root@fp-web-169 harbor]# cat docker-compose.yml 
version: '2.3'
services:
  log:
    image: goharbor/harbor-log:v1.8.0  ##本地仓库中的镜像 
    container_name: harbor-log    ##容器名
    restart: always
    dns_search: .
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /var/log/harbor/:/var/log/docker/:z     ###harbor日志
      - ./common/config/log/:/etc/logrotate.d/:z   ##日志
    ports:
      - 127.0.0.1:1514:10514
    networks:
      - harbor
  registry:
    image: goharbor/registry-photon:v2.7.1-patch-2819-v1.8.0
    container_name: registry
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - /data/registry:/storage:z
      - ./common/config/registry/:/etc/registry/:z
      - type: bind
        source: /data/secret/registry/root.crt
        target: /etc/registry/root.crt
    networks:
      - harbor
    dns_search: .
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "registry"
  registryctl:
    image: goharbor/harbor-registryctl:v1.8.0
    container_name: registryctl
    env_file:
      - ./common/config/registryctl/env
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - /data/registry:/storage:z
      - ./common/config/registry/:/etc/registry/:z
      - type: bind
        source: ./common/config/registryctl/config.yml
        target: /etc/registryctl/config.yml
    networks:
      - harbor
    dns_search: .
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "registryctl"
  postgresql:
    image: goharbor/harbor-db:v1.8.0
    container_name: harbor-db
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /data/database:/var/lib/postgresql/data:z
    networks:
      harbor:
    dns_search: .
    env_file:
      - ./common/config/db/env
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "postgresql"
  core:
    image: goharbor/harbor-core:v1.8.0
    container_name: harbor-core
    env_file:
      - ./common/config/core/env
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - SETGID
      - SETUID
    volumes:
      - /data/ca_download/:/etc/core/ca/:z
      - /data/psc/:/etc/core/token/:z
      - /data/:/data/:z
      - ./common/config/core/certificates/:/etc/core/certificates/:z
      - type: bind
        source: ./common/config/core/app.conf
        target: /etc/core/app.conf
      - type: bind
        source: /data/secret/core/private_key.pem
        target: /etc/core/private_key.pem
      - type: bind
        source: /data/secret/keys/secretkey
        target: /etc/core/key
    networks:
      harbor:
    dns_search: .
    depends_on:
      - log
      - registry
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "core"
  portal:
    image: goharbor/harbor-portal:v1.8.0
    container_name: harbor-portal
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - NET_BIND_SERVICE
    networks:
      - harbor
    dns_search: .
    depends_on:
      - log
      - core
    logging:
      driver: "syslog"
      options:
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "portal"

  jobservice:
    image: goharbor/harbor-jobservice:v1.8.0
    container_name: harbor-jobservice
    env_file:
      - ./common/config/jobservice/env
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - /data/job_logs:/var/log/jobs:z
      - type: bind
        source: ./common/config/jobservice/config.yml
        target: /etc/jobservice/config.yml
    networks:
      - harbor
    dns_search: .
    depends_on:
      - redis
      - core
    logging:
      driver: "syslog"
      options:
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "jobservice"
  redis:
    image: goharbor/redis-photon:v1.8.0
    container_name: redis
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
    volumes:
      - /data/redis:/var/lib/redis
    networks:
      harbor:
    dns_search: .
    depends_on:
      - log
    logging:
      driver: "syslog"
      options:
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "redis"
  proxy:
    image: goharbor/nginx-photon:v1.8.0
    container_name: nginx
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - NET_BIND_SERVICE
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    dns_search: .
    ports:
      - 80:80
    depends_on:
      - postgresql
      - registry
      - core
      - portal
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"
networks:
  harbor:
    external: false

 

[root@fp-web-169 harbor]# locate config.yml

/data/harbor/common/config/registry/config.yml

[root@fp-web-169 harbor]# cat /data/harbor/common/config/registry/config.yml
version: 0.1
log:
  level: info
  fields:
    service: registry
storage:
  cache:
    layerinfo: redis
  filesystem:
    rootdirectory: /storage
  maintenance:
    uploadpurging:
      enabled: false
  delete:
    enabled: true
redis:
  addr: redis:6379
  password: 
  db: 1
http:
  addr: :5000
  secret: placeholder
  debug:
    addr: localhost:5001
auth:
  token:
    issuer: harbor-token-issuer
    realm: http://registry.prm.com.cn/service/token
    rootcertbundle: /etc/registry/root.crt
    service: harbor-registry
validation:
  disabled: true
notifications:
  endpoints:
  - name: harbor
    disabled: false
    url: http://core:8080/service/notifications
    timeout: 3000ms
    threshold: 5
    backoff: 1s
compatibility:
  schema1:

核心的环境配置文件

[root@fp-web-169 harbor]# cat /data/harbor/common/config/core/env
CONFIG_PATH=/etc/core/app.conf
UAA_CA_ROOT=/etc/core/certificates/uaa_ca.pem
_REDIS_URL=redis:6379,100,
SYNC_REGISTRY=false
CHART_CACHE_DRIVER=redis
_REDIS_URL_REG=redis://redis:6379/1

PORT=8080
LOG_LEVEL=info
EXT_ENDPOINT=http://registry.prm.com.cn  //web访问入口
DATABASE_TYPE=postgresql
POSTGRESQL_HOST=postgresql
POSTGRESQL_PORT=5432
POSTGRESQL_USERNAME=postgres
POSTGRESQL_PASSWORD=prm_p15
POSTGRESQL_DATABASE=registry
POSTGRESQL_SSLMODE=disable
REGISTRY_URL=http://registry:5000
TOKEN_SERVICE_URL=http://core:8080/service/token
HARBOR_ADMIN_PASSWORD=prm_p15
MAX_JOB_WORKERS=10
CORE_SECRET=sfk7hclnetyugA81
JOBSERVICE_SECRET=9FgZRk9wINKL6yg2
ADMIRAL_URL=
WITH_NOTARY=False
WITH_CLAIR=False
CLAIR_DB_PASSWORD=prm_p15
CLAIR_DB_HOST=postgresql
CLAIR_DB_PORT=5432
CLAIR_DB_USERNAME=postgres
CLAIR_DB=postgres
CLAIR_DB_SSLMODE=disable
CORE_URL=http://core:8080
JOBSERVICE_URL=http://jobservice:8080
CLAIR_URL=http://clair:6060
NOTARY_URL=http://notary-server:4443
REGISTRY_STORAGE_PROVIDER_NAME=filesystem
READ_ONLY=false
RELOAD_KEY=
CHART_REPOSITORY_URL=http://um:9999
REGISTRY_CONTROLLER_URL=http://pctl:8080

 

标签:core,compose,异同,harbor,registry,docker,root
来源: https://www.cnblogs.com/aozhejin/p/16180182.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有