Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| system:docker [2018/11/17 19:08] – mirocow | system:docker [2026/01/12 20:37] (текущий) – 192.168.1.159 | ||
|---|---|---|---|
| Строка 5: | Строка 5: | ||
| {{https:// | {{https:// | ||
| - | | VIRTUAL MACHINES | ||
| - | | Virtual machines include the application, | ||
| ====== Установка ====== | ====== Установка ====== | ||
| - | * https:// | + | ===== Ubuntu |
| - | * https:// | + | |
| - | * https:// | + | |
| - | + | ||
| - | nano / | + | |
| - | < | + | |
| - | deb https:// | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Использование | + | |
| - | + | ||
| - | ==== Работа с образами / Images ==== | + | |
| - | + | ||
| - | + | ||
| - | <note important> | + | |
| - | $ docker image | + | |
| - | </ | + | |
| - | + | ||
| - | === Вывести список образов | + | |
| <code bash> | <code bash> | ||
| - | $ docker | + | $ apt update && \ |
| - | REPOSITORY | + | apt install ca-certificates curl gnupg lsb-release -y && \ |
| - | yii2_php | + | 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-compose-plugin -y | ||
| </ | </ | ||
| - | === Удалить образ | + | ===== Debian ===== |
| <code bash> | <code bash> | ||
| - | $ docker | + | $ 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> | <code bash> | ||
| - | $ docker | + | $ sudo groupadd |
| - | [ | + | $ sudo usermod -aG docker $USER |
| - | { | + | $ newgrp docker |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | ], | + | |
| - | " | + | |
| - | " | + | |
| - | ... | + | |
| - | } | + | |
| </ | </ | ||
| - | === Избавляемся от неиспользуемых образов | + | ====== |
| - | + | ||
| - | <code bash>$ docker image prune</ | + | |
| - | + | ||
| - | === Список образов | + | |
| - | + | ||
| - | <note tip> | + | |
| + | Если Docker Swarm создается | ||
| <code bash> | <code bash> | ||
| - | $ docker | + | $ docker |
| - | REPOSITORY | + | # В вответ docker swarm join --token SWMTKN-1-54k2k418tw2j0juwm3inq6crp4ow6xogswihcc5azg7oq5qo7e-a3rfeyfwo7d93heq0y5vhyzod 172.31.245.104: |
| - | yii2_php | + | # Эту команду необходимо будет выполнить на каждой присоединяймой ноде |
| - | yii2_nginx | + | |
| - | yii2_kibana | + | |
| - | yii2_elasticsearch | + | |
| - | yii2_redis | + | |
| - | yii2_mariadb | + | |
| </ | </ | ||
| - | ==== Работа | + | Если необходимо присоеденить |
| - | + | ||
| - | <note important> | + | |
| - | $ docker | + | |
| - | $ docker exec --help | + | |
| - | </ | + | |
| - | + | ||
| - | === Запуск контейнера === | + | |
| - | + | ||
| - | <note tip>Необходим | + | |
| - | + | ||
| - | <code bash>$ docker up</ | + | |
| - | + | ||
| - | === Список | + | |
| <code bash> | <code bash> | ||
| - | $ docker | + | $ docker |
| - | CONTAINER ID IMAGE COMMAND | + | # В вответ docker swarm join --token SWMTKN-1-54k2k418tw2j0juwm3inq6crp4ow6xogswihcc5azg7oq5qo7e-a3rfeyfwo7d93heq0y5vhyzod 172.31.245.104:2377 |
| - | a50423920e0d | + | # Эту команду необходимо будет выполнить на каждой присоединяймой ноде |
| - | fa24abd60049 | + | |
| </ | </ | ||
| - | === Подсоеденение к контейнеру | + | ====== Настройки ====== |
| - | <note tip> | + | === Log drivers: управление логами === |
| - | < | + | nano / |
| - | $ sudo docker exec -i -t a50423920e0d /bin/bash | + | < |
| - | $ sudo docker exec -i -t a50423920e0d /bin/sh | + | { |
| + | "log-driver": | ||
| + | "log-opts": { | ||
| + | " | ||
| + | "max-file": " | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| - | ==== Запустить контейнер | + | ====== |
| - | + | ||
| - | <code bash>$ docker start a50423920e0d</ | + | |
| - | + | ||
| - | ==== Остановить контейнер ==== | + | |
| - | + | ||
| - | <code bash>$ docker stop a50423920e0d</ | + | |
| - | + | ||
| - | ==== Пребить контейнер ==== | + | |
| - | + | ||
| - | <code bash>$ docker kill a50423920e0d</ | + | |
| - | + | ||
| - | ===== Использование docker-composer.yml ===== | + | |
| - | + | ||
| - | <note important> | + | |
| - | $ docker-compose | + | |
| - | $ docker-compose exec | + | |
| - | </ | + | |
| - | + | ||
| - | <hidden docker-composer.yml> | + | |
| - | <code yaml> | + | |
| - | version: ' | + | |
| - | services: | + | |
| - | mariadb: | + | |
| - | build: ./ | + | |
| - | restart: always | + | |
| - | environment: | + | |
| - | MYSQL_ROOT_PASSWORD: | + | |
| - | MYSQL_DATABASE: | + | |
| - | MYSQL_USER: skringo | + | |
| - | MYSQL_PASSWORD: | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | expose: | + | |
| - | - ' | + | |
| - | volumes: | + | |
| - | - ' | + | |
| - | redis: | + | |
| - | build: ./ | + | |
| - | restart: always | + | |
| - | environment: | + | |
| - | - REDIS_VERSION=4.0.9 | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | expose: | + | |
| - | - ' | + | |
| - | redis-commander: | + | |
| - | container_name: | + | |
| - | hostname: redis-commander | + | |
| - | image: rediscommander/ | + | |
| - | build: . | + | |
| - | restart: always | + | |
| - | environment: | + | |
| - | - REDIS_HOSTS=local: | + | |
| - | ports: | + | |
| - | - 8081:8081 | + | |
| - | nginx: | + | |
| - | build: ./ | + | |
| - | restart: always | + | |
| - | links: | + | |
| - | - php | + | |
| - | volumes: | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | environment: | + | |
| - | - NGINX_VERSION=1.13.12-1~stretch | + | |
| - | - NGINX_HOST=skringo.loc | + | |
| - | - NGINX_PORT=80 | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | command: 'sh -c " | + | |
| - | elasticsearch: | + | |
| - | build: ./ | + | |
| - | restart: always | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | expose: | + | |
| - | - ' | + | |
| - | environment: | + | |
| - | - ELASTICSEARCH_VERSION=5.6.9 | + | |
| - | - JAVA_ALPINE_VERSION=8.151.12-r0 | + | |
| - | - JAVA_VERSION=8u151 | + | |
| - | - LANG=C.UTF-8 | + | |
| - | - cluster.name=docker-cluster | + | |
| - | - bootstrap.memory_lock=true | + | |
| - | - " | + | |
| - | ulimits: | + | |
| - | memlock: | + | |
| - | soft: -1 | + | |
| - | hard: -1 | + | |
| - | mem_limit: 1g | + | |
| - | kibana: | + | |
| - | build: ./ | + | |
| - | links: | + | |
| - | - elasticsearch | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | php: | + | |
| - | build: ./ | + | |
| - | restart: always | + | |
| - | links: | + | |
| - | - mariadb | + | |
| - | - redis | + | |
| - | - elasticsearch | + | |
| - | ports: | + | |
| - | - ' | + | |
| - | expose: | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | environment: | + | |
| - | - PHP_IDE_CONFIG=serverName=skringo.loc | + | |
| - | volumes: | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | - ' | + | |
| - | + | ||
| - | networks: | + | |
| - | default: | + | |
| - | external: | + | |
| - | name: nginx-proxy | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Подсоеденение к контейнеру ==== | + | |
| - | + | ||
| - | <code bash>$ docker-compose exec php / | + | |
| - | Где php название используемого сервиса / services | + | |
| - | + | ||
| - | ==== Запуск с использованием локального конфига ==== | + | |
| - | + | ||
| - | <code bash>$ docker-compose -f docker-compose.yml -f docker-compose-local.yaml up -d</ | + | |
| - | + | ||
| - | ====== Особенности работы с 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 ==== | + | |
| - | + | ||
| - | Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) | + | |
| - | В качестве решенияпроблемы, | + | |
| - | + | ||
| - | <code yaml> | + | |
| - | fpm: | + | |
| - | build: ./ | + | |
| - | links: | + | |
| - | - ambassador: | + | |
| - | nginx: | + | |
| - | build: ./ | + | |
| - | links: | + | |
| - | - ambassador: | + | |
| - | ambassador: | + | |
| - | image: cpuguy83/ | + | |
| - | volumes: | + | |
| - | - "/ | + | |
| - | command: "-name testapp_fpm_1 -name testapp_nginx_1" | + | |
| - | </ | + | |
| - | + | ||
| - | ==== ERROR: Couldn' | + | |
| - | + | ||
| - | скорее всего вам потребуется сделать следующее: | + | |
| - | <code bash>$ docker-machine create --driver=xhyve dev --xhyve-experimental-nfs-share</ | + | |
| - | + | ||
| - | ====== Компоненты ====== | + | |
| - | + | ||
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | + | ||
| - | ====== Репозитории ====== | + | |
| - | + | ||
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | ====== Документация / Статьи ====== | + | |
| - | + | ||
| - | * http:// | + | |
| - | * [[https:// | + | |
| - | * [[http:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * http:// | + | |
| - | * https:// | + | |
| - | * https:// | + | |
| - | ====== Другие системы виртуализации ====== | + | * [[docker-socket|Docker Socket]] |
| - | {{topic> | + | ====== Мониторинг ====== |
| + | * [[software: | ||
| + | * [[software: | ||
| + | * [[software: | ||