Docker: различия между версиями

Материал из Home Wiki
Перейти к навигации Перейти к поиску
 
(не показана 21 промежуточная версия этого же участника)
Строка 5: Строка 5:


Add the docker group if it doesn't already exist:
Add the docker group if it doesn't already exist:
 
<syntaxhighlight lang="bash">
sudo groupadd docker
sudo groupadd docker
</syntaxhighlight>


Add the connected user "${USER}" to the docker group. Change the user name to match your preferred user:
Add the connected user "${USER}" to the docker group. Change the user name to match your preferred user:
 
<syntaxhighlight lang="bash">
sudo gpasswd -a ${USER} docker
sudo gpasswd -a ${USER} docker
</syntaxhighlight>


Restart the Docker daemon:
Restart the Docker daemon:
 
<syntaxhighlight lang="bash">
sudo service docker restart
sudo service docker restart
</syntaxhighlight>


If you are on Ubuntu 14.04-15.10* use docker.io instead:
If you are on Ubuntu 14.04-15.10* use docker.io instead:
<syntaxhighlight lang="bash">
sudo service docker.io restart
</syntaxhighlight>
= Информация о запущенном контейнере =
<syntaxhighlight lang="bash">
docker inspect 38ffba0fc7d0
</syntaxhighlight>
Выводит полные настройки, в том числе IP-адрес контейнера.
= Запуск шелла внутри докера =
<syntaxhighlight lang="bash">
docker exec -ti 38ffba0fc7d0 /bin/sh
</syntaxhighlight>
= Удаление не нужных образов =
<syntaxhighlight lang="bash">
docker rmi $(docker images | grep "<none>" | awk "{print \$3}")
</syntaxhighlight>
https://lebkowski.name/docker-volumes/
<syntaxhighlight lang="bash">
docker ps --filter status=dead --filter status=exited -aq | xargs docker rm -v
docker volume ls -qf dangling=true | xargs -r docker volume rm
</syntaxhighlight>
= Добавление файла в образ и работа с ним =
Добавляем необходимый сертификат в образ openjdk:8-jre-alpine чтобы java могла без ошибок соединяться по TLS с учетом не корректной настройки удаленного сервера:
<syntaxhighlight lang="bash">
ADD certificate.der /root/certificate.der
RUN keytool -importcert -alias local-certificate-CA \
    -keystore /etc/ssl/certs/java/cacerts -storepass changeit \
    -file /root/certificate.der && \
    rm /root/certificate.der
</syntaxhighlight>
Файл должен быть расположен в директории с Dockerfile.
= Официальные образы =
https://hub.docker.com/_/redmine/
= Удаление цветного оформления из логов =


sudo service docker.io restart
https://makandracards.com/makandra/1695-removing-ansi-color-codes-from-rails-logs
 
<syntaxhighlight lang="bash">
docker logs ID | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" > result.colorless.log
</syntaxhighlight>
 
= Запуск кластера с применением docker swarm =
# ставим docker ce 18.03
# ставим docker-machine (надо ли?)
# docker swarm init --advertise-addr 192.168.0.X
# подключем на другой машине docker swarm worker: docker swarm join --token SWMTKN-1-XXX-YYY 192.168.0.X:2377
# docker stack deploy kafka --compose-file kafka1.yml
# docker service scale kafka_zookeeper=2 kafka_kafka=2
 
Тут не получилось связать все в единый кластер. Каждый за себя.
 
= docker login =
 
<syntaxhighlight lang="bash">
docker login s3-testing.myregistry.com:4567
</syntaxhighlight>
 
= docker run =
 
docker run --rm -i c6c42753f80d /bin/sh
 
= Default timezone =
 
docker run --rm -e TZ=Europe/Amsterdam -i c6c42753f80d /bin/sh


[[Категория:Работа]]
[[Категория:Работа]]
[[Категория:Linux]]
[[Категория:Linux]]

Текущая версия на 09:35, 17 июня 2019

Категория:Работа

Настройка для пользователя

http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo/477554#477554

Add the docker group if it doesn't already exist:

sudo groupadd docker

Add the connected user "${USER}" to the docker group. Change the user name to match your preferred user:

sudo gpasswd -a ${USER} docker

Restart the Docker daemon:

sudo service docker restart

If you are on Ubuntu 14.04-15.10* use docker.io instead:

sudo service docker.io restart

Информация о запущенном контейнере

docker inspect 38ffba0fc7d0

Выводит полные настройки, в том числе IP-адрес контейнера.

Запуск шелла внутри докера

docker exec -ti 38ffba0fc7d0 /bin/sh

Удаление не нужных образов

docker rmi $(docker images | grep "<none>" | awk "{print \$3}")

https://lebkowski.name/docker-volumes/

docker ps --filter status=dead --filter status=exited -aq | xargs docker rm -v
docker volume ls -qf dangling=true | xargs -r docker volume rm

Добавление файла в образ и работа с ним

Добавляем необходимый сертификат в образ openjdk:8-jre-alpine чтобы java могла без ошибок соединяться по TLS с учетом не корректной настройки удаленного сервера:

ADD certificate.der /root/certificate.der

RUN keytool -importcert -alias local-certificate-CA \
    -keystore /etc/ssl/certs/java/cacerts -storepass changeit \
    -file /root/certificate.der && \
    rm /root/certificate.der

Файл должен быть расположен в директории с Dockerfile.

Официальные образы

https://hub.docker.com/_/redmine/

Удаление цветного оформления из логов

https://makandracards.com/makandra/1695-removing-ansi-color-codes-from-rails-logs

docker logs ID | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" > result.colorless.log

Запуск кластера с применением docker swarm

  1. ставим docker ce 18.03
  2. ставим docker-machine (надо ли?)
  3. docker swarm init --advertise-addr 192.168.0.X
  4. подключем на другой машине docker swarm worker: docker swarm join --token SWMTKN-1-XXX-YYY 192.168.0.X:2377
  5. docker stack deploy kafka --compose-file kafka1.yml
  6. docker service scale kafka_zookeeper=2 kafka_kafka=2

Тут не получилось связать все в единый кластер. Каждый за себя.

docker login

docker login s3-testing.myregistry.com:4567

docker run

docker run --rm -i c6c42753f80d /bin/sh

Default timezone

docker run --rm -e TZ=Europe/Amsterdam -i c6c42753f80d /bin/sh