Инструменты пользователя

Инструменты сайта


linux:containers

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:containers [2025/01/26 09:33]
admin
linux:containers [2025/04/16 06:53] (текущий)
admin [Volumes]
Строка 435: Строка 435:
  
  
 +==== Volumes ====
 +Инструкция "VOLUME" в Dockerfile при сборке, похоже просто создает новый волюм во время сборки, плюс обязывает созданный контейнер постоянно монтировать его при запуске\\
  
 +<code bash>
 +podman volume create <vol_name>
 +podman volume ls / inspect <vol_name> / rm <vol_name>
  
-===== Docker-compose =====+# Создание контейнера с примонтированным волюмом (можно не запускать) 
 +podman container create --name <container_name> -v <vol_name>:/inside_folder <image_name>
  
 +# Копируем из хоста файлы в волюм, через контейнер
 +podman cp <host_dir>/ <container_name>:/<inside_folder>
 +
 +# Теперь в волюме есть нужные данные, персистентно и им можно пользоваться в других контейнерах
 +podman run -it -v <vol_name>:/inside_folder <image_name>
 +</code>
 +
 +
 +Монтирование папки с хоста в контейнер\\
 +Только права на нее назначаются рутовые\\
 +<code bash>
 +podman run -d -v /path/host_dir:/container_dir <image_name>
 +podman run -d --mount src=/path/host_dir,target=/container_dir,type=bind <image_name>
 +
 +# В Compose
 +services:
 +  my_app:
 +    image: my_app
 +    container_name: my_app
 +    volumes:
 +      - type: bind
 +        source: /path/host_dir
 +        target: /container_dir
 +
 +</code>
 +
 +
 +
 +
 +
 +
 +===== Docker-compose =====
 Указание версии в файле либо впринципе устарело либо приобрело новый формат - [[https://docs.docker.com/reference/compose-file/]]\\ Указание версии в файле либо впринципе устарело либо приобрело новый формат - [[https://docs.docker.com/reference/compose-file/]]\\
 +[[https://docs.docker.com/reference/compose-file|Docs]]\\
  
 Оркестрация несколькими контейнерами\\ Оркестрация несколькими контейнерами\\
Строка 776: Строка 815:
 </code> </code>
 </details> </details>
 +
 +
 +
 +==== PostgreSQL ====
 +:!: Примонтировав папку со скриптами в **"/docker-entrypoint-initdb.d"** внутри контейнера, можно выполнять любой функционал с БД внутри контейнера, после инициализации сервера\\
 +
 +
 +<details>
 +<summary>:!: Общий пример</summary>
 +Капец, каждую версию управляющие переменные окружения меняются\\
 +В 15ой обязательная переменная **POSTGRES_PASSWORD**, для создания БД - **POSTGRES_DB**\\
 +В 17ой все другое\\
 +<code bash>
 +services:
 +  post-db:
 +    image: "postgres:15-alpine3.20"
 +#    env_file: .env
 +    environment:
 +      POSTGRES_DB: 'my_db'
 +      POSTGRES_PASSWORD: 'postgres1'
 +    ports:
 +      - "5432:5432"
 +</code>
 +</details>
 +
 +
 +
 +<details>
 +<summary>:!: МультиБД</summary>
 +[[https://github.com/mrts/docker-postgresql-multiple-databases|Src]]\\
 +Монтируем скрипт в директорию **/docker-entrypoint-initdb.d** внутри контейнера, он создает несколько БД\\
 +
 +<code bash>
 +services:
 +  sarm-db:
 +    image: "postgres:15-alpine3.20"
 +#    env_file: .env
 +    environment:
 +#      POSTGRES_DB: "my_db"
 +      POSTGRES_PASSWORD: "ppp"
 +      POSTGRES_MULTIPLE_DATABASES: my_db1,my_db2
 +    volumes:
 + - ./extended_scripts:/docker-entrypoint-initdb.d
 +    ports:
 +      - "5432:5432"
 +</code>
 +</details>
 +
 +
 +
 +<details>
 +<summary>:!:  </summary>
 +
 +<code bash>
 +</code>
 +</details>
 +
 +
  
  
linux/containers.1737883993.txt.gz · Последнее изменение: 2025/01/26 09:33 — admin