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/30 08:20]
val [Создание контейнера для приложения с использованием Dockerfile]
технология_docker [2022/08/19 15:21] (current)
val [Insecure Private Registry]
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 140: Line 144:
 /​etc/​init.d/​inetutils-inetd start /​etc/​init.d/​inetutils-inetd start
  
-###bash # not work in k8s +touch /​var/​log/​webd.log 
-tail -/​var/​log/​webd.log+#chown 10003 /var/www/ 
 +   
 +if [ "​$MYMODE"​ = '​TEST'​ ]; then 
 +  ​bash      # not work in k8s 
 +else 
 +  ​tail -/​var/​log/​webd.log 
 +fi
 </​code><​code>​ </​code><​code>​
 server# cat Dockerfile server# cat Dockerfile
Line 152: 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 simple ​test in k8s 
 +###COPY index.html /​var/​www/ ​  #test in k8s
  
 EXPOSE 80 EXPOSE 80
Line 166: 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 и expose ​(можно добавить ​ключ --rm для удаления контейнера после остановки)+2-й раз ​- через Dockerfile ​задан entrypoint и exposeключ --rm для удаления контейнера после остановки
  
-server# docker run --name webd01 --hostname webd01 ​-itd -v /​var/​www/:/​var/​www/ ​-P 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 188: Line 201:
  
 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/​
 +
 +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 243: 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 255: 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 267: 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 279: 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 +node2_3# docker ​ps -q | xargs -l docker port
- +
-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 319: 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.1656566448.txt.gz · Last modified: 2022/06/30 08:20 by val