Add Setup private docker registry & docker_auth on data-server
parent
d9215b7c3e
commit
596533b9fb
|
@ -0,0 +1,76 @@
|
|||
We use `focs.ji.sjtu.edu.cn:5000` for our private [registry](https://hub.docker.com/_/registry) and `focs.ji.sjtu.edu.cn:5001` for [docker_auth](https://github.com/cesanta/docker_auth) to provide authentication. Port 5000 and 5001 on `data-server` are forwarded to focs.ji.sjtu.edu.cn and they are only accessible within the campus network.
|
||||
|
||||
`docker_auth` lets login admins have permission to push to the registry, and anyone to pull from it. We need to `docker login focs.ji.sjtu.edu.cn` on `joj-dev` since it pushes to the registry from gitea actions.
|
||||
|
||||
To run `registry`:
|
||||
|
||||
```
|
||||
$ cat /opt/docker-configs/registry/config.yml
|
||||
version: 0.1
|
||||
log:
|
||||
fields:
|
||||
service: registry
|
||||
storage:
|
||||
cache:
|
||||
blobdescriptor: inmemory
|
||||
filesystem:
|
||||
rootdirectory: /var/lib/registry
|
||||
http:
|
||||
addr: :5000
|
||||
headers:
|
||||
X-Content-Type-Options: [nosniff]
|
||||
tls:
|
||||
certificate: "/certs/live/focs.ji.sjtu.edu.cn/fullchain.pem"
|
||||
key: "/certs/live/focs.ji.sjtu.edu.cn/privkey.pem"
|
||||
auth:
|
||||
token:
|
||||
realm: "https://focs.ji.sjtu.edu.cn:5001/auth"
|
||||
service: "Docker registry"
|
||||
issuer: "Acme auth server"
|
||||
rootcertbundle: "/certs/live/focs.ji.sjtu.edu.cn/fullchain.pem"
|
||||
health:
|
||||
storagedriver:
|
||||
enabled: true
|
||||
interval: 10s
|
||||
threshold: 3
|
||||
$ docker run -d --restart=always --name registry-auth -v /etc/letsencrypt/:/certs -v registry-data:/var/lib/registry -v /opt/docker-configs/registry/config.yml:/etc/docker/registry/config.yml -p 5000:5000 registry:2.8.3
|
||||
```
|
||||
|
||||
To run `docker_auth`:
|
||||
|
||||
```
|
||||
$ cat /opt/docker-configs/docker_auth/auth_config.yml
|
||||
# A simple example. See reference.yml for explanation of all options.
|
||||
#
|
||||
# auth:
|
||||
# token:
|
||||
# realm: "https://127.0.0.1:5001/auth"
|
||||
# service: "Docker registry"
|
||||
# issuer: "Acme auth server"
|
||||
# rootcertbundle: "/path/to/server.pem"
|
||||
|
||||
server:
|
||||
addr: ":5001"
|
||||
certificate: "/certs/live/focs.ji.sjtu.edu.cn/fullchain.pem"
|
||||
key: "/certs/live/focs.ji.sjtu.edu.cn/privkey.pem"
|
||||
|
||||
token:
|
||||
issuer: "Acme auth server" # Must match issuer in the Registry config.
|
||||
expiration: 900
|
||||
|
||||
users:
|
||||
# Password is specified as a BCrypt hash. Use `htpasswd -nB USERNAME` to generate.
|
||||
"admin":
|
||||
password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC" # badmin
|
||||
"": {} # Allow anonymous (no "docker login") access.
|
||||
|
||||
acl:
|
||||
- match: { account: "admin" }
|
||||
actions: ["*"]
|
||||
comment: "Admin has full access to everything."
|
||||
- match: { account: "" }
|
||||
actions: ["pull"]
|
||||
comment: "Anonymous users can pull any image."
|
||||
# Access is denied by default.
|
||||
$ docker run -d --restart=always --name docker_auth -v /etc/letsencrypt/:/certs -p 5001:5001 -v /opt/docker-configs/docker_auth:/config:ro -v /var/log/docker_auth:/logs cesanta/docker_auth:1 --v=2 --alsologtostderr /config/auth_config.yml
|
||||
```
|
Loading…
Reference in New Issue
Block a user