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 [2025/01/11 14:39]
val [Запуск в режиме демона и подключение к контейнеру]
технология_docker [2025/05/05 07:39] (current)
val [docker-compose]
Line 59: Line 59:
  
 # docker info # docker info
 +</​code>​
 +==== Запуск контейнеров ====
  
 +  * [[https://​stackoverflow.com/​questions/​41694329/​docker-run-override-entrypoint-with-shell-script-which-accepts-arguments|Docker run override entrypoint with shell script which accepts arguments]]
 +  * Запуск сервиса TACACS+ в [[Сервис TACACS+#​Docker]]
 +
 +<​code>​
 # docker run hello-world # docker run hello-world
  
Line 79: Line 85:
   * [[Сервис Grafana]]   * [[Сервис Grafana]]
 ==== Обзор и удаление ==== ==== Обзор и удаление ====
 +
 +  * [[https://​forums.docker.com/​t/​why-arent-base-layer-images-listed-in-docker-image-ls-a/​139044/​5|Why aren’t base layer images listed in `docker image ls -a`?]]
  
 <​code>​ <​code>​
Line 247: Line 255:
  
 <​code>​ <​code>​
 +:~/pywebd$ ### mkdir etc/; cp -rv /​etc/​pywebd/​ etc/
 +:~/pywebd$ ### echo '<​h1>​Hello from pywebd</​h1>'​ > index.html
 +
 :~/pywebd$ dpkg -l | grep python ​ :~/pywebd$ dpkg -l | grep python ​
  
Line 271: Line 282:
  
 #COPY --chown=myuser:​myuser app.py . #COPY --chown=myuser:​myuser app.py .
-#COPY --chown=myuser:​myuser pywebd.conf /​etc/​pywebd/​ +### COPY --chown=myuser:​myuser ​etc/pywebd/​etc/​pywebd/​ 
-#COPY --chown=myuser:​myuser index.html /var/www/+### COPY --chown=myuser:​myuser index.html /var/www/
 ### ADD www.tgz /var/ ### ADD www.tgz /var/
  
 ### ENV PYWEBD_PORT=4080 ### ENV PYWEBD_PORT=4080
  
-#EXPOSE 4080+### EXPOSE 4080
  
 ENTRYPOINT ["​python"​] ENTRYPOINT ["​python"​]
 CMD ["​app.py"​] CMD ["​app.py"​]
 </​code><​code>​ </​code><​code>​
- 
 :~/pywebd$ time docker build -t pywebd . :~/pywebd$ time docker build -t pywebd .
 +
 +:~/pywebd$ ### docker run -ti --rm --entrypoint /bin/sh pywebd
 +:~/pywebd$ ### docker run -p 4443 -d --rm pywebd
  
 :~/pywebd$ docker run -d --rm -p 4088 -e PYWEBD_PORT=4088 -v /​etc/​pywebd:/​etc/​pywebd -v /​var/​www/:/​var/​www/​ --name pywebd01 pywebd :~/pywebd$ docker run -d --rm -p 4088 -e PYWEBD_PORT=4088 -v /​etc/​pywebd:/​etc/​pywebd -v /​var/​www/:/​var/​www/​ --name pywebd01 pywebd
- 
-:~/pywebd$ ### cp /​etc/​pywebd/​pywebd.conf . 
- 
-:~/pywebd$ ### echo '<​h1>​Hello from pywebd</​h1>'​ > index.html 
 </​code>​ </​code>​
  
Line 317: Line 326:
 #FROM alpine #FROM alpine
 #COPY --from=builder /gowebd /gowebd #COPY --from=builder /gowebd /gowebd
 +
 +EXPOSE 80
  
 ENTRYPOINT ["/​gowebd"​] ENTRYPOINT ["/​gowebd"​]
Line 329: Line 340:
 student@client1:​~/​gowebd$ docker run -d --rm -p 80 --name gowebd01 gowebd student@client1:​~/​gowebd$ docker run -d --rm -p 80 --name gowebd01 gowebd
 </​code>​ </​code>​
- 
-== Smoke test == 
- 
-<​code>​ 
-$ MY_ID=$(docker run -d --rm gowebd) 
-$ MY_IP=$(docker inspect -f '​{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'​ $MY_ID) 
-$ docker run --rm alpine/curl -sS $MY_IP 
-$ docker stop $MY_ID 
-</​code>​ 
- 
-  * [[#​Запуск в режиме демона и подключение к контейнеру]] 
  
 == docker buildx == == docker buildx ==
Line 357: Line 357:
 </​code><​code>​ </​code><​code>​
 ubuntu:​~/​gowebd#​ time docker build -t gowebd . ubuntu:​~/​gowebd#​ time docker build -t gowebd .
 +...
 +real    0m6.686s
 </​code>​ </​code>​
 +
 +== Smoke test ==
 +
 +<​code>​
 +$ MY_ID=$(docker run -d --rm gowebd)
 +$ MY_IP=$(docker inspect -f '​{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}'​ $MY_ID)
 +$ docker run --rm alpine/curl -sS $MY_IP
 +$ docker stop $MY_ID
 +</​code>​
 +
 +  * [[#​Запуск в режиме демона и подключение к контейнеру]]
 ==== Запуск в режиме демона и подключение к контейнеру ==== ==== Запуск в режиме демона и подключение к контейнеру ====
  
Line 465: Line 478:
 # chown -R 10003 /var/www # chown -R 10003 /var/www
  
-# docker run --name sftp01 -v /​var/​www:/​home/​user3/​www -p 2222:22 -d atmoz/sftp user3:​password3:​10003+# docker run --name sftp01 -v /​var/​www:/​home/​user3/​www -p 2222:22 -d --rm atmoz/sftp user3:​password3:​10003
  
-# docker exec -it sftp01 bash+# ###docker exec -it sftp01 bash
 </​code>​ </​code>​
 Ctrl+D Ctrl+D
Line 475: Line 488:
 # sftp -P 2222 user3@localhost # sftp -P 2222 user3@localhost
 </​code>​ </​code>​
-  * [[Сервис SSH#Настройка ssh клиента]]+  * [[Сервис SSH#WinSCP]]
 <​code>​ <​code>​
 # docker logs sftp01 # docker logs sftp01
  
 # docker stop sftp01 # docker stop sftp01
- 
-# docker rm sftp01 
 </​code>​ </​code>​
  
Line 534: Line 545:
  
 # docker-compose up -d # docker-compose up -d
 +
 +# docker-compose logs -f webd
  
 # docker-compose stop # docker-compose stop
Line 542: Line 555:
  
 # docker-compose rm # docker-compose rm
 +
 +# docker volume inspect root_vol1
  
 # docker volume rm root_vol1 # docker volume rm root_vol1
Line 662: Line 677:
 <​code>​ <​code>​
 ~/gowebd# time docker run \ ~/gowebd# time docker run \
-  -v $(pwd):/​workspace --rm\+  -v $(pwd):/​workspace ​
 +  ​-v ~/​.docker/​config.json:/​kaniko/​.docker/​config.json ​\
   gcr.io/​kaniko-project/​executor:​latest \   gcr.io/​kaniko-project/​executor:​latest \
-  --skip-tls-verify --log-timestamp\+  --skip-tls-verify --log-timestamp \
   --dockerfile=./​Dockerfile \   --dockerfile=./​Dockerfile \
   --context=/​workspace \   --context=/​workspace \
-  --destination=server.corp13.un:​5000/​student/​gowebd ​+  --destination=server.corpX.un:​5000/​student/​gowebd
-  --cache=true --cache-copy-layers --cache-repo server.corp13.un:​5000/​dev-cache --use-new-run \ +
-  --verbosity debug+
 </​code><​code>​ </​code><​code>​
 или, интерактивно:​ или, интерактивно:​
Line 675: Line 689:
 root@ubuntu:​~/​gowebd#​ docker run -it \ root@ubuntu:​~/​gowebd#​ docker run -it \
   -v $(pwd):/​workspace --rm --entrypoint "/​bin/​sh"​ \   -v $(pwd):/​workspace --rm --entrypoint "/​bin/​sh"​ \
 +  -v ~/​.docker/​config.json:/​kaniko/​.docker/​config.json \
   gcr.io/​kaniko-project/​executor:​debug ​   gcr.io/​kaniko-project/​executor:​debug ​
  
Line 680: Line 695:
   --dockerfile=./​Dockerfile \   --dockerfile=./​Dockerfile \
   --context=/​workspace \   --context=/​workspace \
-  --destination=server.corp13.un:​5000/​student/​gowebd+  --destination=server.corpX.un:​5000/​student/​gowebd
 </​code><​code>​ </​code><​code>​
 тестируем результат:​ тестируем результат:​
 </​code><​code>​ </​code><​code>​
 # docker run --pull=always --name gowebd -itd --rm \ # docker run --pull=always --name gowebd -itd --rm \
-  -p 8000:80 server.corp13.un:​5000/​student/​gowebd+  -p 8000:80 server.corpX.un:​5000/​student/​gowebd
 </​code>​ </​code>​
 ==== Приложение apwebd ==== ==== Приложение apwebd ====
технология_docker.1736595565.txt.gz · Last modified: 2025/01/11 14:39 by val