User Tools

Site Tools


технология_docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
технология_docker [2022/06/27 15:55]
val [GitLab репозиторий]
технология_docker [2022/08/19 15:21] (current)
val [Insecure Private Registry]
Line 100: Line 100:
 /​etc/​init.d/​inetutils-inetd start /​etc/​init.d/​inetutils-inetd start
  
-/bin/bash+bash
 </​code>​ </​code>​
  
Line 116: Line 116:
  
 Ctrl+D Ctrl+D
 +
 +  * [[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/
 +  или
 +node1# mkdir /​root/​webd/​webd/​ && cd /​root/​webd/​webd/​
  
 server# mv /​usr/​local/​sbin/​webd . server# mv /​usr/​local/​sbin/​webd .
Line 135: Line 139:
  
 server# cat start.sh server# cat start.sh
-...см. выше...+</​code><​code>​ 
 +#!/bin/sh
  
 +/​etc/​init.d/​inetutils-inetd start
 +
 +touch /​var/​log/​webd.log
 +#chown 10003 /var/www/
 +  ​
 +if [ "​$MYMODE"​ = '​TEST'​ ]; then
 +  bash      # not work in k8s
 +else
 +  tail -f /​var/​log/​webd.log
 +fi
 +</​code><​code>​
 server# cat Dockerfile server# cat Dockerfile
 </​code><​code>​ </​code><​code>​
Line 146: Line 162:
 COPY start.sh / COPY start.sh /
 COPY webd /​usr/​local/​sbin/​webd COPY webd /​usr/​local/​sbin/​webd
-### ADD www.tgz /var/+### ADD www.tgz /var/          #for simple test in k8s 
 +###COPY index.html /​var/​www/ ​  #test in k8s 
 + 
 +EXPOSE 80 
 +#ENV MYMODE=TEST
  
 ENTRYPOINT ["/​start.sh"​] ENTRYPOINT ["/​start.sh"​]
Line 157: Line 177:
 ==== Запуск в режиме демона и подключение к контейнеру ==== ==== Запуск в режиме демона и подключение к контейнеру ====
 <​code>​ <​code>​
-1-й раз+1-й раз ​- запуск образа сделанного "​вручную"​
  
 server# docker run --name webd01 --hostname webd01 -itd -v /​var/​www/:/​var/​www/​ -p 8000:80 test/webd /start.sh server# docker run --name webd01 --hostname webd01 -itd -v /​var/​www/:/​var/​www/​ -p 8000:80 test/webd /start.sh
  
-2-й раз задан entrypoint ​(можно добавить ключ --rm для удаления контейнера после остановки)+2-й раз ​- через Dockerfile ​задан entrypoint и expose, ​ключ --rm для удаления контейнера после остановки
  
-server# docker run --name webd01 --hostname webd01 ​-itd -v /​var/​www/:/​var/​www/ ​-p 8000:​80 ​test/webd+server# docker run --name webd01 -e MYMODE=TEST ​-itd --rm -P test/webd
  
 server# docker top webd01 server# docker top webd01
 +</​code>​ 
 +  * [[Технология cgroup]] 
 +<​code>​
 server# ps axw | grep inetd server# ps axw | grep inetd
 server# cat /​proc/<​PID>/​cgroup server# cat /​proc/<​PID>/​cgroup
Line 177: Line 199:
  
 server# docker port webd01 server# docker port webd01
 +
 +server# docker logs webd01
 +
 +node1# docker logs webd01 -f
  
 server# wget -qO - http://​localhost:​8000/​ server# wget -qO - http://​localhost:​8000/​
 +
 +node1# curl http://​localhost:​8000
 +node1# curl http://​localhost:​8000/​not_exit_file
  
 host browser -> http://​server.corpX.un:​8000/​ host browser -> http://​server.corpX.un:​8000/​
Line 232: Line 261:
  
   * [[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 244: Line 274:
   webd:   webd:
     image: test/webd     image: test/webd
 +#    image: server.corp13.un:​5000/​student/​webd:​1.1
     build: webd/     build: webd/
     ports:     ports:
       - "​8000:​80"​       - "​8000:​80"​
 +#      - "​80"​
     volumes:     volumes:
       - /​var/​www/:/​var/​www/​       - /​var/​www/:/​var/​www/​
 +#      - vol1:/​var/​www/​
 +
 +#    environment:​
 +#      - MYMODE=TEST
 +#    stdin_open: true
     tty: true     tty: true
 +#    deploy:
 +#      mode: replicated
 +#      replicas: 3
 +    ​
   sftp:   sftp:
     image: atmoz/sftp     image: atmoz/sftp
Line 256: Line 297:
     volumes:     volumes:
       - /​var/​www/:/​home/​user3/​www       - /​var/​www/:/​home/​user3/​www
 +#      - vol1:/​home/​user3/​www
     command: user3:​password3:​10003     command: user3:​password3:​10003
 +#volumes:
 +#  vol1:
 </​code><​code>​ </​code><​code>​
 # docker-compose build # docker-compose build
Line 268: 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:​1.1 
 +    ports: 
 +      - "​80"​ 
 +    volumes: 
 +      - /​var/​www/:/​var/​www/​ 
 +    deploy: 
 +      mode: replicated 
 +      replicas: 3 
 +</​code><​code>​ 
 +node2_3# docker-compose up -d --scale webd=3
  
- * [[https://​docs.docker.com/​registry/​|Docker Registry]]+  или
  
-<​code>​ +node2_3# docker-compose ​--compatibility up -
-gate# docker ​run --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+node2_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# docker tag val/​webd:​latest gate.corp13.un:​5000/​webd 
- 
-node1# docker push gate.corp13.un:​5000/​webd 
  
-node1curl --insecure -X GET https://​gate.corp13.un:​5000/​v2/​_catalog +node2_3docker ps -q | xargs -l docker port
-{"​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 308: Line 361:
 # docker login http://​server.corpX.un:​5000 # 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>​ 
 +node1# docker tag test/webd server.corpX.un:​5000/​student/​webd 
 +node1# docker tag test/webd server.corpX.un:​5000/​student/​webd:​1.1 
 + 
 +node1# docker push server.corpX.un:​5000/​student/​webd 
 +node1# 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+node2# docker run --name webd01 --hostname webd01 -itd --rm -p 8000:80 server.corpX.un:​5000/​student/​webd:​1.1 
 +</​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>​
  
технология_docker.1656334555.txt.gz · Last modified: 2022/06/27 15:55 by val