Контейнер в Docker работает до тех пор, пока процесс в нем не завершиться, другими словами, он не может работать без активного процесса внутри контейнера.
Стоит заметить также, что после выключения контейнера вся созданная информация, например, в базе данных MySQL будет потеряна, чтобы ее сохранить следует изначально примонтировать заранее созданный docker volume, либо директорию на выбор из системы хоста внутрь контейнера.
отобразить список контейнеров
# docker ps -a
включить контейнер и сделать маппинг порта хоста 3838 к порту контейнера 8080
# docker run -p 3838:8080 instancename:tag
показать JSON файл настроек самого контейнера, включительно его переменные окружения
# docker inspect container-name || docker inspect container-id
--name container-name - задает имя контейнеру
-e VARIABLE_NAME=value - задает значение переменной окружения внутри контейнера
-d запускает контейнер в детач режиме, чтобы он работал в фоне.
# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=set_here_your_password --name mysql-db mysql
посмотреть историю создания образа
# docker history image-name
создание docker образа из файла Dockerfile с указанным в нем наборе файлов, к которым можно указать путь, ссылку, а так же задать с ключем -t имя:тег
# docker build Dockerfile -t your-docker-hub-account-name/app
создать docker образ используя файл докера -f path/to/Dockerfile -t name - с заданным именем
# docker build -t webapp-color -f webapp-color/Dockerfile
создать образ docker используя Dockerfile, который находиться в текущей директории и указав его имя -t name
# docker build -t app .
узнаем версию операционной системы образа "python:3.6"
# docker run python:3.6 cat /etc/*release*
проверка размера образа
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
app latest fdd77dd5d 3 minutes ago 784MB
при каждом перезапуске docker контейнеру присваивается случайным образом новый IP адрес, кроме того, docker имеет свой встроеный DNS сервер работающий с IP адресом 127.0.0.11 и может резолвить имена контейнеров благодаря этому.
проверить сети используемые докером
# docker network ls
NETWORK ID NAME DRIVER SCOPE
1ca00993 bridge bridge local
8b838832 host host local
b3dc15bf none null local
проверить информацию по сети bridge
# docker network inspect bridge
запутсить контейнер с именем alpine-2 используя образ alpine и присоеденить к сети "none", то есть, оставить без сети
# docker run --name alpine-2 --network=none alpine
создать новую сеть с именем wp-mysql-network используя драйвер bridge, выделить подсеть subnet 182.18.0.1/24 и сконфигурировать шлюз 182.18.0.1
# docker network create --driver bridge --subnet 182.18.0.1/24 --gateway 182.18.0.1 wp-mysql-network
развернуть MySQL базу данных используя образ mysql:5.6 и задать имя mysql-db параметром --name, присоединить к созданной сети wp-mysql-network ключем --network, передать значение переменной -e, и установить таким образом пароль MySQL
# docker run -d -e MYSQL_ROOT_PASSWORD=db_password --name mysql-db --network wp-mysql-network mysql:5.6
создать volume
# docker volume create name-of-volume
отобразить список volume
# docker volume ls
отобразить информацию JSON файла volume
# docker volume inspect name-of-volume
удаление volume
# docker volume rm name-of-volume
запустить контейнер в детач режиме -d и примонтировать volume /opt/data к директории внутри контейнера /var/lib/mysql, а так же задать значение переменной в конейтере -e VARIABLE_NAME=value
# docker run -v /opt/data:/var/lib/mysql -d --name mysql-db -e MYSQL_ROOT_PASSWORD=set_here_your_password mysql
не забыть
# docker exec mysql-db mysql -pdb_password -e 'use databaseName; select * from tableName'
посмотреть логи
# docker logs --follow container-name
Комментарии
Отправить комментарий