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:21]
val [Создание контейнера для приложения с использованием Dockerfile]
технология_docker [2022/08/19 13:06] (current)
val [docker-compose]
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
  
 +touch /​var/​log/​webd.log
 +#chown 10003 /var/www/
 +  ​
 if [ "​$MYMODE"​ = '​TEST'​ ]; then if [ "​$MYMODE"​ = '​TEST'​ ]; then
   bash      # not work in k8s   bash      # not work in k8s
 else else
-  tail -/​var/​log/​webd.log+  tail -/​var/​log/​webd.log
 fi fi
 </​code><​code>​ </​code><​code>​
Line 155: 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 169: 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 191: 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 246: 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 258: 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 270: 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 282: Line 312:
 # docker-compose down # docker-compose down
  
-# docker-compose rm    #​Возможно,​ не требуется +# docker-compose rm
-</​code>​ +
-===== Дополнительные материалы =====+
  
-==== Локальный репозиторий ====+# docker volume rm root_vol1
  
- * [[https://​docs.docker.com/​registry/​|Docker Registry]] 
  
-<​code>​ +root@node1:​~/​webd# docker-compose up -d --scale webd=3
-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+root@node1:~/webd# docker-compose --compatibility up -d 
 +root@node1:​~/​webd#​ docker-compose --compatibility down
  
-node1# docker tag val/​webd:​latest gate.corp13.un:​5000/​webd 
  
-node1# docker push gate.corp13.un:5000/webd +root@node1:~/​webd# ​docker ps -q | xargs -l docker port
- +
-node1curl --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 322: Line 348:
 # docker login http://​server.corpX.un:​5000 # docker login http://​server.corpX.un:​5000
  
 +# less ~/​.docker/​config.json
 +</​code><​code>​
 +{
 +        "​auths":​ {
 +                "​server.corp13.un:​5000":​ {
 +                        "​auth":​ "​c3R1ZGVudDpwYXNzd29yZA=="​
 +                }
 +        }
 +}
 +</​code><​code>​
 # docker tag test/webd server.corpX.un:​5000/​student/​webd # docker tag test/webd server.corpX.un:​5000/​student/​webd
 # docker tag test/webd server.corpX.un:​5000/​student/​webd:​wwwdir # docker tag test/webd server.corpX.un:​5000/​student/​webd:​wwwdir
Line 328: Line 364:
 # docker push server.corpX.un:​5000/​student/​webd:​wwwdir # docker push server.corpX.un:​5000/​student/​webd:​wwwdir
 ... ...
-# docker run --name webd01 --hostname webd01 -itd -p 8000:80 server.corp13.un:​5000/​student/​webd:​wwwdir+# 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>​
  
технология_docker.1656566516.txt.gz · Last modified: 2022/06/30 08:21 by val