Запуск изображения Docker в качестве контейнера

Я построил изображение докера из файла докеров. Я вижу, что изображение было построено успешно, но что мне с ним делать? Разве он не может работать как контейнер?

Новое для докеров, возможно, недоразумение на моем конце, любая помощь будет отличной.

Ответ 1

Конкретный способ его запуска зависит от того, дали ли вы изображение тегу/имени или нет.

$ docker images
REPOSITORY          TAG                 ID                  CREATED             SIZE
ubuntu              12.04               8dbd9e392a96        4 months ago        131.5 MB (virtual 131.5 MB)

С именем (пусть использует Ubuntu):

$ docker run -i -t ubuntu:12.04 /bin/bash

Без имени, просто с помощью идентификатора:

$ docker run -i -t 8dbd9e392a96 /bin/bash

Пожалуйста, смотрите https://docs.docker.com/engine/reference/run/ для получения дополнительной информации.

Ответ 2

Сделайте следующие шаги:

  • $ docker images

    вы получите список всех локальных изображений докеров с указанными тегами.

  • $ docker run image_name:tag_name

    Если вы не указали tag_name, он автоматически запустит изображение с помощью "последнего" тега.

    Вместо image_name вы также можете указать идентификатор изображения (no tag_name).

Ответ 3

  • Чтобы перечислить изображения докера

    $ docker images
    
  • Если ваше приложение хочет работать с портом 80, и вы можете предоставить другой порт для локального связывания, скажем, 8080

    $ docker run -d --restart=always -p 8080:80 image_name:version
    

Ответ 4

Вы можете просмотреть доступные изображения, используя

docker images

Затем вы можете работать в автономном режиме, чтобы ваш терминал по-прежнему работал, у вас есть несколько опций, чтобы запустить его, используя имя репозитория (с тегом или без) или идентификатор изображения

docker run -d repository
docker run -d repository:tag
docker run -d image_id

Затем вы можете проверить, работает ли ваш контейнер, используя

docker ps

docker ps дает вам идентификатор контейнера, вы можете использовать его или просто 2/3 первого символа, чтобы войти в ваш контейнер, используя

docker exec -it container_id /bin/bash

и вы можете остановить его, используя docker stop container_id и docker rm container_id

Вы также можете запустить свой контейнер с аргументами -rm, так что если вы остановите свой контейнер, он будет автоматически удален.

Ответ 5

Получите имя или идентификатор изображения, которое вы хотите запустить, с помощью этой команды: docker images

Команда docker run используется следующим образом:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Ниже я включил параметры отправки, имени, публикации, объема и перезапуска, прежде чем указывать имя или идентификатор изображения:

docker run -d --name  container-name -p localhost:80:80 -v $HOME/myContainer/configDir:/myImage/configDir --restart=always image-name

Где:

--detach , -d       Run container in background and print container ID
--name              Assign a name to the container
--publish , -p      Publish a containers port(s) to the host
--volume , -v       Bind mount a volume
--restart           Restart policy to apply when a container exits

Для получения дополнительной информации, пожалуйста, ознакомьтесь с официальной ссылкой на запуск докера.

Ответ 6

Вот пример запуска службы webdev в докере.
Название изображения morrisjobke/webdav. Вы можете вытащить его из докер-хаба.

После запуска этих изображений вы можете получить доступ к экземпляру WebDAV в http://localhost:8888/webdav. Внутренне папка /var/webdav используется в качестве корня WebDAV.

Вы можете запустить этот контейнер следующим образом: $ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav

Ответ 7

У меня такая же проблема. Я запустил докер, и он создал контейнер с определенным CONTAINER_ID, и я хотел работать с тем же контейнером:

сначала запустите докер:

docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning

Затем перечислите весь созданный вами контейнер:

sudo docker ps -a

и выберите контейнер, с которым вы хотите работать (у меня это 167ddd6d7f15)

sudo docker start -ai 167ddd6d7f15

Ответ 8

Поскольку вы создали изображение из файла Docker, изображение в данный момент не находится в активном состоянии. Чтобы работать, вам нужно запустить это изображение внутри контейнера.

Команда $ docker images описывает, сколько изображений доступно в данный момент в локальном репозитории. а также

docker ps -a 

показывает, сколько контейнеров доступно в данный момент, т.е. список активных и вышедших контейнеров

Есть два способа запустить изображение в контейнере

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

в автономном режиме

-d=false: Detached mode: Run container in the background, print new container id

в интерактивном режиме

-i :Keep STDIN open even if not attached

Вот команда запуска докера

$ docker run image_name:tag_name

Для получения дополнительной информации о запуске докера вы можете посетить https://docs.docker.com/engine/reference/run/.

это лучший материал, чтобы понять докер.

Ответ 9

Для тех, у кого была такая же проблема, но возникла ошибка типа

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"bash\": executable file not found in $PATH"

Поэтому я добавил Entrypoint, который работал для меня.

Окно запуска -it --entrypoint/bin/sh для изображений без bash.

Пример (из утвержденного примера):

run -it --entrypoint /bin/sh ubuntu:12.04

Ссылка: https://gist.github.com/mitchwongho/11266726

Ответ 10

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED            
jamesmedice/marketplace   latest              e78c49b5f380        2 days ago          
jamesmedice/marketplace   v1.0.0              *e78c49b5f380*        2 days ago          


$ docker run -p 6001:8585 *e78c49b5f380*