This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
технология_docker [2022/07/02 20:42] val [docker-compose] |
технология_docker [2022/09/23 06:53] val [Создание контейнера для приложения вручную] |
||
---|---|---|---|
Line 115: | Line 115: | ||
</code> | </code> | ||
- | Ctrl+D | + | * Методически, можно уже на этом этапе запустить скрипт, отключится от контейнера без его остановки, выяснить назначенный контейнеру ip, проверить работу приложения (curl --noproxy '*' http://172.17.0.2/) и если все работает, делать commit |
+ | |||
+ | * [[https://cpab.ru/kak-rabotajut-tegi-docker-cloudsavvy-it/|Как работают теги Docker?]] | ||
<code> | <code> | ||
Line 129: | Line 131: | ||
<code> | <code> | ||
server# mkdir /root/webd/ && cd /root/webd/ | server# mkdir /root/webd/ && cd /root/webd/ | ||
+ | или | ||
+ | gitlab-runner@server:~$ mkdir -p webd/webd/ && cd webd/webd/ | ||
server# mv /usr/local/sbin/webd . | server# mv /usr/local/sbin/webd . | ||
Line 141: | Line 145: | ||
touch /var/log/webd.log | touch /var/log/webd.log | ||
+ | #chown 10003 /var/www/ | ||
| | ||
if [ "$MYMODE" = 'TEST' ]; then | if [ "$MYMODE" = 'TEST' ]; then | ||
Line 157: | Line 162: | ||
COPY start.sh / | COPY start.sh / | ||
COPY webd /usr/local/sbin/webd | COPY webd /usr/local/sbin/webd | ||
- | ### ADD www.tgz /var/ #for simple test in k8s | + | ### ADD www.tgz /var/ |
+ | |||
+ | ### for helm releases test | ||
+ | ### COPY index.html /var/www/ | ||
EXPOSE 80 | EXPOSE 80 | ||
Line 183: | Line 191: | ||
server# ps axw | grep inetd | server# ps axw | grep inetd | ||
server# cat /proc/<PID>/cgroup | server# cat /proc/<PID>/cgroup | ||
+ | </code> | ||
+ | * [[Технология cgroup]] | ||
+ | <code> | ||
+ | server# cat /sys/fs/cgroup/system.slice/docker-NNNNNNNNNNNNNNNNNNNNNNNNNNNNN.scope/memory.max | ||
server# docker inspect webd01 | server# docker inspect webd01 | ||
Line 189: | Line 201: | ||
server# wget -qO - http://172.17.0.2/ | server# wget -qO - http://172.17.0.2/ | ||
+ | server$ curl http://172.17.0.2/ | ||
server# docker port webd01 | server# docker port webd01 | ||
server# docker logs webd01 | server# docker logs webd01 | ||
+ | |||
+ | node1# docker logs webd01 -f | ||
server# wget -qO - http://localhost:8000/ | server# wget -qO - http://localhost:8000/ | ||
+ | server$ curl http://localhost:8000 | ||
+ | server$ curl http://localhost:8000/not_exit_file | ||
host browser -> http://server.corpX.un:8000/ | host browser -> http://server.corpX.un:8000/ | ||
Line 248: | Line 265: | ||
* [[https://habr.com/ru/company/ruvds/blog/450312/|Руководство по Docker Compose для начинающих]] | * [[https://habr.com/ru/company/ruvds/blog/450312/|Руководство по Docker Compose для начинающих]] | ||
+ | * [[https://stackoverflow.com/questions/39663096/docker-compose-creating-multiple-instances-for-the-same-image|docker-compose creating multiple instances for the same image]] | ||
<code> | <code> | ||
Line 272: | Line 290: | ||
# stdin_open: true | # stdin_open: true | ||
tty: true | tty: true | ||
+ | | ||
sftp: | sftp: | ||
image: atmoz/sftp | image: atmoz/sftp | ||
Line 293: | Line 312: | ||
# docker-compose down | # docker-compose down | ||
- | # docker-compose rm #Возможно, не требуется | + | # docker-compose rm |
- | </code> | + | |
- | ===== Дополнительные материалы ===== | + | |
- | ==== Локальный репозиторий ==== | + | # docker volume rm root_vol1 |
+ | </code><code> | ||
+ | node2_3# cat docker-compose.yml | ||
+ | </code><code> | ||
+ | version: "3" | ||
+ | services: | ||
+ | webd: | ||
+ | image: server.corpX.un:5000/student/webd:ver1.N | ||
+ | ports: | ||
+ | - "80" | ||
+ | volumes: | ||
+ | - /var/www/:/var/www/ | ||
+ | deploy: | ||
+ | mode: replicated | ||
+ | replicas: 3 | ||
+ | </code><code> | ||
+ | node1,2,3# docker-compose up -d --scale webd=3 | ||
- | * [[https://docs.docker.com/registry/|Docker Registry]] | + | или |
- | <code> | + | node1,2,3# docker-compose --compatibility up -d |
- | gate# docker run -d -p 5000:5000 -v /root:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/gate.crt -e REGISTRY_HTTP_TLS_KEY=/certs/gate.key --name registry registry:2 | + | node1,2,3# docker-compose --compatibility down |
- | node1# cp ~vagrant/gate.crt /etc/docker/certs.d/gate.corp13.un\:5000/ca.crt | ||
- | node1# service docker restart | + | node1,2,3# docker ps -q | xargs -l docker port |
- | + | ||
- | node1# docker tag val/webd:latest gate.corp13.un:5000/webd | + | |
- | + | ||
- | node1# docker push gate.corp13.un:5000/webd | + | |
- | + | ||
- | node1# curl --insecure -X GET https://gate.corp13.un:5000/v2/_catalog | + | |
- | {"repositories":["webd"]} | + | |
</code> | </code> | ||
- | ==== GitLab репозиторий ==== | + | ===== Локальные репозитории ===== |
+ | |||
+ | ==== Insecure Private Registry ==== | ||
* [[Инструмент GitLab#GitLab Docker Registry]] | * [[Инструмент GitLab#GitLab Docker Registry]] | ||
+ | * [[https://docs.docker.com/registry/insecure/|Test an insecure registry/Deploy a plain HTTP registry]] | ||
<code> | <code> | ||
Line 331: | Line 359: | ||
# service docker restart | # service docker restart | ||
- | # docker login http://server.corpX.un:5000 | + | gitlab-runner@server:~$ docker login http://server.corpX.un:5000 |
- | # docker tag test/webd server.corpX.un:5000/student/webd | + | # less ~/.docker/config.json |
- | # docker tag test/webd server.corpX.un:5000/student/webd:wwwdir | + | </code><code> |
+ | { | ||
+ | "auths": { | ||
+ | "server.corp13.un:5000": { | ||
+ | "auth": "c3R1ZGVudDpwYXNzd29yZA==" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
- | # docker push server.corpX.un:5000/student/webd | + | * [[https://serverfault.com/questions/703344/how-to-remove-an-image-tag-in-docker-without-removing-the-image-itself|How to remove an image tag in Docker without removing the image itself?]] |
- | # docker push server.corpX.un:5000/student/webd:wwwdir | + | |
+ | <code> | ||
+ | gitlab-runner@server:~$ docker tag test/webd server.corpX.un:5000/student/webd | ||
+ | gitlab-runner@server:~$ docker tag test/webd server.corpX.un:5000/student/webd:1.1 | ||
+ | |||
+ | gitlab-runner@server:~$ docker images | ||
+ | |||
+ | gitlab-runner@server:~$ docker push server.corpX.un:5000/student/webd | ||
+ | gitlab-runner@server:~$ docker push server.corpX.un:5000/student/webd:1.1 | ||
... | ... | ||
- | # docker run --name webd01 --hostname webd01 -itd -p 8000:80 server.corp13.un:5000/student/webd:wwwdir | + | node1_2_3# docker run --name webd01 --hostname webd01 -itd --rm -p 8000:80 server.corpX.un:5000/student/webd |
+ | </code> | ||
+ | |||
+ | ==== Использование образа Docker Registry ==== | ||
+ | |||
+ | * [[https://docs.docker.com/registry/|Docker Registry]] | ||
+ | |||
+ | <code> | ||
+ | gate# docker run -d -p 5000:5000 -v /root:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/gate.crt -e REGISTRY_HTTP_TLS_KEY=/certs/gate.key --name registry registry:2 | ||
+ | |||
+ | node1# cp ~vagrant/gate.crt /etc/docker/certs.d/gate.corp13.un\:5000/ca.crt | ||
+ | |||
+ | node1# service docker restart | ||
+ | |||
+ | node1# docker tag val/webd:latest gate.corp13.un:5000/webd | ||
+ | |||
+ | node1# docker push gate.corp13.un:5000/webd | ||
+ | |||
+ | node1# curl --insecure -X GET https://gate.corp13.un:5000/v2/_catalog | ||
+ | {"repositories":["webd"]} | ||
</code> | </code> | ||