Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
system:docker [2018/06/26 00:04] – [Пребить контейнер] mirocow | system:docker [2025/01/22 18:24] (текущий) – 192.168.1.104 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{tag> | + | {{tag> |
====== Docker ====== | ====== Docker ====== | ||
Строка 5: | Строка 5: | ||
{{https:// | {{https:// | ||
- | | VIRTUAL MACHINES | ||
- | | {{https:// | ||
- | | Virtual machines include the application, | ||
- | ===== Установка ===== | + | ====== Установка |
- | * https:// | + | ===== Ubuntu ===== |
- | * https:// | + | |
- | * https:// | + | |
- | nano /etc/apt/sources.list | + | <code bash> |
- | < | + | $ apt update && \ |
- | deb https:// | + | apt install ca-certificates curl gnupg lsb-release -y && \ |
+ | mkdir -p /etc/apt/keyrings && \ | ||
+ | curl -fsSL https:// | ||
+ | echo "deb [arch=$(dpkg --print-architecture) signed-by=/ | ||
+ | apt update && \ | ||
+ | apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin | ||
</ | </ | ||
+ | |||
+ | ===== Debian ===== | ||
+ | |||
+ | <code bash> | ||
+ | $ apt update && \ | ||
+ | apt install ca-certificates curl gnupg lsb-release -y && \ | ||
+ | mkdir -p / | ||
+ | curl -fsSL https:// | ||
+ | echo "deb [arch=$(dpkg --print-architecture) signed-by=/ | ||
+ | apt update && \ | ||
+ | apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y | ||
+ | </ | ||
+ | |||
+ | ====== Docker ====== | ||
+ | |||
+ | <code bash> | ||
+ | $ sudo groupadd docker | ||
+ | $ sudo usermod -aG docker $USER | ||
+ | $ newgrp docker | ||
+ | </ | ||
+ | |||
+ | ====== UI ====== | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
===== Использование ===== | ===== Использование ===== | ||
+ | |||
+ | * [[Dockerfile]] | ||
+ | * [[docker-compose.yml]] | ||
==== Работа с образами / Images ==== | ==== Работа с образами / Images ==== | ||
- | < | + | < |
$ docker image | $ docker image | ||
</ | </ | ||
Строка 41: | Строка 73: | ||
<code bash> | <code bash> | ||
$ docker image rm 6a950c96e01d | $ docker image rm 6a950c96e01d | ||
+ | </ | ||
+ | |||
+ | === Удалить все образы === | ||
+ | |||
+ | <code bash> | ||
+ | $ sudo docker rm -f $(sudo docker ps -a -q) | ||
+ | $ sudo docker rmi -f $(sudo docker images -q) | ||
</ | </ | ||
Строка 77: | Строка 116: | ||
yii2_mariadb | yii2_mariadb | ||
</ | </ | ||
+ | |||
+ | === Получение образов === | ||
+ | |||
+ | <note tip> | ||
+ | $ docker save vorobev4/ | ||
+ | </ | ||
+ | |||
+ | === Установка образа === | ||
+ | |||
+ | <note tip> | ||
+ | $ docker load / | ||
+ | </ | ||
==== Работа с контейнерами / Containers ==== | ==== Работа с контейнерами / Containers ==== | ||
- | < | + | < |
+ | $ docker | ||
+ | $ docker exec --help | ||
+ | </ | ||
=== Запуск контейнера === | === Запуск контейнера === | ||
- | < | + | < |
<code bash>$ docker up</ | <code bash>$ docker up</ | ||
Строка 117: | Строка 171: | ||
<code bash>$ docker kill a50423920e0d</ | <code bash>$ docker kill a50423920e0d</ | ||
+ | |||
===== Использование docker-composer.yml ===== | ===== Использование docker-composer.yml ===== | ||
+ | |||
+ | <note important> | ||
+ | $ docker-compose | ||
+ | $ docker-compose exec | ||
+ | </ | ||
<hidden docker-composer.yml> | <hidden docker-composer.yml> | ||
Строка 234: | Строка 294: | ||
<code bash>$ docker-compose -f docker-compose.yml -f docker-compose-local.yaml up -d</ | <code bash>$ docker-compose -f docker-compose.yml -f docker-compose-local.yaml up -d</ | ||
+ | ==== Сети ==== | ||
+ | |||
+ | === Сетевые драйверы === | ||
+ | |||
+ | **bridge**: сетевой драйвер по умолчанию. | ||
+ | Если вы не указываете драйвер, | ||
+ | Мостовые сети обычно используются, | ||
+ | |||
+ | **host**: для автономных контейнеров, | ||
+ | Хост доступен только для служб swarm в Docker версии 17.06 и выше. | ||
+ | |||
+ | **overlay**: | ||
+ | Вы также можете использовать overlay сети для облегчения связи между сервисом Swarm и автономным контейнером. | ||
+ | Или между двумя автономными контейнерами на разных демонах Docker. | ||
+ | Эта стратегия устраняет необходимость выполнять маршрутизацию на уровне ОС между этими контейнерами. | ||
+ | |||
+ | **macvlan**: | ||
+ | Демон Docker направляет трафик в контейнеры по их MAC-адресам. | ||
+ | Использование драйвера macvlan иногда является лучшим выбором при работе с устаревшими приложениями. | ||
+ | Приложениям, | ||
+ | |||
+ | **none**: для этого контейнера отключит все сети. | ||
+ | Обычно используется в сочетании с пользовательским сетевым драйвером. Ни один не доступен для swarm услуг | ||
+ | |||
+ | === Установка === | ||
+ | |||
+ | <code bash> | ||
+ | $ docker network create bridge-network | ||
+ | $ docker network create --driver=bridge bridge-network | ||
+ | $ docker network create -d overlay my-multihost-network | ||
+ | $ docker network create --driver overlay overlay_network | ||
+ | $ docker network create --subnet 10.1.0.0/16 --gateway=10.1.0.1 --ip-range 10.1.4.0/24 --driver=bridge --label=host4networks brifge04 | ||
+ | $ docker network create nginx-proxy | ||
+ | </ | ||
+ | |||
+ | === Использование === | ||
+ | |||
+ | <code bash> | ||
+ | $ docker run -it --name=test_brifge04 --net brifge04 centos: | ||
+ | $ docker run -it --name=test_brifge04_2 --net brifge04 --ip=10.1.4.100 centos: | ||
+ | </ | ||
+ | |||
+ | === Аанализ сетей === | ||
+ | |||
+ | <code bash> | ||
+ | $ docker network inspect bridge | ||
+ | $ docker network inspect nginx-proxy | ||
+ | $ docker network ls | ||
+ | </ | ||
+ | |||
+ | ====== Особенности работы с MAC OS ====== | ||
+ | |||
+ | Все контейнеры в MAC OS находятся в виртуальной машине qcow2 и находятся по адресу | ||
+ | / | ||
+ | |||
+ | * где mirocow имя вашего пользователя | ||
+ | |||
+ | <note tip> | ||
+ | **screen ~/ | ||
+ | |||
+ | ====== Автоматический запуск контейнеров в Debian ====== | ||
+ | |||
+ | ===== System V ===== | ||
+ | |||
+ | nano / | ||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | |||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: | ||
+ | # Required-Start: | ||
+ | # Required-Stop: | ||
+ | # Default-Start: | ||
+ | # Default-Stop: | ||
+ | # Short-Description: | ||
+ | ### END INIT INFO | ||
+ | |||
+ | set -e | ||
+ | |||
+ | PROJECT_NAME=portainer | ||
+ | YAMLFILE=/ | ||
+ | OPTS=" | ||
+ | UPOPTS=" | ||
+ | |||
+ | . / | ||
+ | |||
+ | case " | ||
+ | start) | ||
+ | log_daemon_msg " | ||
+ | docker-compose $OPTS up $UPOPTS | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | log_daemon_msg " | ||
+ | docker-compose $OPTS stop | ||
+ | ;; | ||
+ | |||
+ | reload) | ||
+ | log_daemon_msg " | ||
+ | docker-compose $OPTS up $UPOPTS | ||
+ | ;; | ||
+ | |||
+ | restart) | ||
+ | docker-compose $OPTS stop | ||
+ | docker-compose $OPTS up $UPOPTS | ||
+ | ;; | ||
+ | |||
+ | status) | ||
+ | status=$(docker ps -aqf " | ||
+ | if [ ! -z " | ||
+ | echo " | ||
+ | fi | ||
+ | ;; | ||
+ | |||
+ | *) | ||
+ | log_action_msg " | ||
+ | exit 1 | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | ===== System D ===== | ||
+ | |||
+ | |||
+ | nano / | ||
+ | <code bash> | ||
+ | [Unit] | ||
+ | Description=Portainer service with docker-compose | ||
+ | Requires=docker.service | ||
+ | After=docker.service | ||
+ | |||
+ | [Service] | ||
+ | Restart=always | ||
+ | |||
+ | WorkingDirectory=/ | ||
+ | |||
+ | # Remove old containers, network and volumes | ||
+ | ExecStartPre=/ | ||
+ | ExecStartPre=-/ | ||
+ | ExecStartPre=-/ | ||
+ | |||
+ | # Compose up | ||
+ | ExecStart=/ | ||
+ | |||
+ | # Compose down, remove containers | ||
+ | ExecStop=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
====== Проблемы и их решения ====== | ====== Проблемы и их решения ====== | ||
- | ===== Circular import between fpm and nginx ===== | + | ==== Circular import between fpm and nginx ==== |
Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) | Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) | ||
Строка 257: | Строка 469: | ||
</ | </ | ||
- | ===== ERROR: Couldn' | + | ==== ERROR: Couldn' |
скорее всего вам потребуется сделать следующее: | скорее всего вам потребуется сделать следующее: | ||
Строка 265: | Строка 477: | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
Строка 270: | Строка 483: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ====== Репозитории ====== | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
====== Документация / Статьи ====== | ====== Документация / Статьи ====== | ||
+ | * [[system: | ||
+ | * http:// | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
Строка 291: | Строка 516: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
- | ====== | + | ====== |
- | {{topic> | + | {{topic> |