Run harbor without docker-compose? https://github.com/goharbor/harbor/issues/9758
mkdir -p $(pwd)/harbor/{cert,registry,postgresql,redis,chart_storage,job_logs}
chown -R 999:999 $(pwd)/harbor/postgresql
docker run \
--entrypoint "" \
--user `id -u`:`id -g` \
--volume $(pwd)/harbor/cert:/tmp/cert \
--interactive \
--tty \
--rm \
7error/harbor:1.10.4-8 \
bash -c "export SNI='192.168.9.119;your-harbor-domain;reg.domain.com;192.168.100.111' && cd /tmp/cert && /init-cert.sh"
docker run -d \
--name harbor \
--restart=always \
--env EXT_ENDPOINT=https://reg.domain.com:8443 \
--env TZ=Asia/Shanghai \
-p 8443:8443 \
-p 6080:6080 \
-p 4443:4443 \
-v $(pwd)/harbor:/data \
-v $(pwd)/harbor/job_logs:/var/log/jobs \
-v $(pwd)/harbor/postgresql:/var/lib/postgresql/data \
-v $(pwd)/harbor/redis:/var/lib/redis \
-v $(pwd)/harbor/registry:/storage \
-v $(pwd)/harbor/chart_storage:/chart_storage \
-v $(pwd)/harbor/cert/ca.pem:/etc/core/ca/ca.crt \
-v $(pwd)/harbor/cert/harbor.pem:/etc/cert/server.crt \
-v $(pwd)/harbor/cert/harbor-key.pem:/etc/cert/server.key \
-v $(pwd)/harbor/cert/notary-signer-ca.crt:/etc/notary/notary-signer-ca.crt \
-v $(pwd)/harbor/cert/notary-signer.key:/etc/notary/notary-signer.key \
-v $(pwd)/harbor/cert/notary-signer.crt:/etc/notary/notary-signer.crt \
-v $(pwd)/harbor/cert/private_key.pem:/etc/core/private_key.pem \
-v $(pwd)/harbor/cert/root.crt:/etc/registry/root.crt \
7error/harbor:1.10.4-8
## ui address
https://reg.domain.com:8443
## default user && password
admin
Harbor12345
cp $(pwd)/harbor/cert/ca.pem /etc/pki/ca-trust/source/anchors/ca.cert
update-ca-trust force-enable
update-ca-trust
systemctl restart docker
docker login -u admin --password Harbor12345 reg.domain.com:8443
docker pull debian:10
docker tag debian:10 reg.domain.com:8443/library/debian:10
docker push reg.domain.com:8443/library/debian:10
docker pull reg.domain.com:8443/library/debian:10
## helm cli
helm repo update
helm repo add --ca-file $(pwd)/harbor/cert/ca.pem myrepo https://reg.domain.com:8443/chartrepo/library
helm repo update
helm search myrepo
$ docker exec -it harbor bash -c "ss -tunlp"
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=323,fd=6))
tcp LISTEN 0 128 0.0.0.0:8081 0.0.0.0:* users:(("nginx",pid=332,fd=6))
tcp LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:4443 0.0.0.0:* users:(("nginx",pid=333,fd=8))
tcp LISTEN 0 128 0.0.0.0:8443 0.0.0.0:* users:(("nginx",pid=333,fd=6))
tcp LISTEN 0 128 0.0.0.0:6080 0.0.0.0:* users:(("nginx",pid=333,fd=7))
tcp LISTEN 0 128 *:5000 *:* users:(("registry",pid=327,fd=3))
tcp LISTEN 0 128 *:14443 *:* users:(("notary-server",pid=644,fd=6))
tcp LISTEN 0 128 *:6060 *:* users:(("clair",pid=452,fd=5))
tcp LISTEN 0 128 *:6061 *:* users:(("clair",pid=452,fd=6))
tcp LISTEN 0 128 *:9999 *:* users:(("chartm",pid=328,fd=3))
tcp LISTEN 0 128 *:8080 *:* users:(("harbor_core",pid=624,fd=9))
tcp LISTEN 0 128 *:8082 *:* users:(("harbor_jobservi",pid=329,fd=9))
tcp LISTEN 0 128 *:8084 *:* users:(("clair-adapter",pid=338,fd=3))
tcp LISTEN 0 128 *:8085 *:* users:(("harbor_registry",pid=322,fd=3))
tcp LISTEN 0 128 [::]:5432 [::]:*
tcp LISTEN 0 128 *:7899 *:*
$ docker exec -it harbor bash -c "pstree"
s6-svscan─┬─s6-supervise
├─s6-supervise───clair───7*[{clair}]
├─s6-supervise───chartm───8*[{chartm}]
├─s6-supervise───harbor_core───12*[{harbor_core}]
├─2*[s6-supervise───nginx───4*[nginx]]
├─s6-supervise───harbor_jobservi───13*[{harbor_jobservi}]
├─s6-supervise───notary-server───11*[{notary-server}]
├─s6-supervise───clair-adapter───8*[{clair-adapter}]
├─s6-supervise───notary-signer───8*[{notary-signer}]
├─s6-supervise───postgres───15*[postgres]
├─s6-supervise───redis-server───3*[{redis-server}]
├─s6-supervise───registry───7*[{registry}]
└─s6-supervise───harbor_registry───5*[{harbor_registry}]
$ docker exec -it harbor bash -c "pstree -a"
s6-svscan -t0 /var/run/s6/services
├─s6-supervise s6-fdholderd
├─s6-supervise clair
│ └─clair -config /etc/clair/config.yml
│ └─7*[{clair}]
├─s6-supervise chartmuseum
│ └─chartm
│ └─8*[{chartm}]
├─s6-supervise core
│ └─harbor_core
│ └─12*[{harbor_core}]
├─s6-supervise nginx
│ └─nginx
│ ├─nginx
│ ├─nginx
│ ├─nginx
│ └─nginx
├─s6-supervise jobservice
│ └─harbor_jobservi -c /etc/jobservice/config.yml
│ └─13*[{harbor_jobservi}]
├─s6-supervise notary-server
│ └─notary-server -config=/etc/notary/server-config.postgres.json -logf=json
│ └─11*[{notary-server}]
├─s6-supervise clair-adapter
│ └─clair-adapter
│ └─8*[{clair-adapter}]
├─s6-supervise notary-signer
│ └─notary-signer -config=/etc/notary/signer-config.postgres.json -logf=json
│ └─8*[{notary-signer}]
├─s6-supervise portal
│ └─nginx
│ ├─nginx
│ ├─nginx
│ ├─nginx
│ └─nginx
├─s6-supervise postgres
│ └─postgres -D /var/lib/postgresql/data
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ ├─postgres
│ └─postgres
├─s6-supervise redis
│ └─redis-server
│ └─3*[{redis-server}]
├─s6-supervise registry
│ └─registry serve /etc/registry/config.yml
│ └─7*[{registry}]
└─s6-supervise registryctl
└─harbor_registry -c /etc/registryctl/config.yml
└─5*[{harbor_registry}]
docker exec -it harbor bash
s6-service all status
chartmuseum up (pid 287) 735 seconds
clair up (pid 289) 735 seconds
clair-adapter up (pid 291) 735 seconds
core up (pid 309) 735 seconds
jobservice up (pid 296) 735 seconds
nginx up (pid 297) 735 seconds
notary-server up (pid 326) 735 seconds
notary-signer up (pid 300) 735 seconds
portal up (pid 298) 735 seconds
postgres up (pid 318) 735 seconds
redis up (pid 304) 735 seconds
registry up (pid 299) 735 seconds
registryctl up (pid 330) 735 seconds
s6-fdholderd down (exitcode 0) 735 seconds, ready 735 seconds
s6-service nginx stop
s6-service nginx reload
s6-service nginx restart
Content type
Image
Digest
Size
375.2 MB
Last updated
almost 6 years ago
docker pull 7error/harbor