Запустить образ Docker как контейнер

После создания образа Docker из dockerfile я вижу, что образ был создан успешно, но что мне с ним делать? Разве я не могу запустить его как контейнер?


person boom    schedule 28.08.2013    source источник


Ответы (11)


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

$ 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

Дополнительные сведения см. В справочнике по запуску Docker.

person Andy    schedule 28.08.2013
comment
Значит, понятные для человека имена, напечатанные под "ИМЯ" в docker ps -a, здесь бесполезны? - person ThorSummoner; 23.08.2015
comment
docker ps перечисляет контейнеры, а не изображения. Если вы хотите создать изображение из контейнера, вы должны docker commit. Вы можете использовать NAME в коммите (например, docker commit _NAME_ _imagename_) - person Andy; 24.08.2015
comment
@Andy Почему мы используем / bin / bash в конце? Я тоже новенькая - person Raheel; 07.07.2016
comment
@RaheelKhan Потому что вашему образу докера нужно что-то запускать. Вы можете заменить это установленной программой. / bin / bash - это уже установленная удобная оболочка. - person Ryan Shillington; 09.02.2017
comment
Если вам нужно добавить переменную среды, вы можете выполнить docker run -i -t -e ROOT_PASSWORD = root ubuntu: 12.04 - person Balaji Radhakrishnan; 16.12.2017
comment
@ Энди, я видел только docker run -it <image>, и он запускает оболочку по умолчанию. Хорошо сочетается, например, с альпинизмом. И, вероятно, с другими образами ОС, где точка входа не была изменена. - person Alen Siljak; 23.04.2019

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

  1. $ docker images

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

  2. $ docker run image_name:tag_name

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

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

person kalyani chaudhari    schedule 17.05.2016
comment
Я новичок в докере, мне это помогает, спасибо. Далее мы можем проверить статусы запущенных образов sudo docker ps -a - person WK5; 01.03.2021

  • Чтобы перечислить образы Docker

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

    $ docker run -d --restart=always -p 8080:80 image_name:version
    
person Murali Manchadikkal    schedule 08.08.2017

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

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 аргументами, поэтому, если вы остановите свой контейнер, он будет автоматически удален.

person amdev    schedule 07.05.2018
comment
Параметр --rm (примечание: 2 черточки не одиночный) - золотой !!!, моя система завалена остановленными (мертвыми) контейнерами. - person Johan Snowgoose; 15.07.2019

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

docker images

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

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 container’s port(s) to the host
--volume , -v        Bind mount a volume
--restart            Restart policy to apply when a container exits

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

person JSON C11    schedule 13.06.2018

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

Сначала запустите образ Docker:

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
person farnaz jazayeri    schedule 29.10.2018

Вот пример запуска службы веб-разработки в Docker. Имя изображения - morrisjobke / webdav. Вы можете загрузить его из Docker Hub.

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

Вы можете запустить этот контейнер следующим образом:

$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
person Yang Yu    schedule 03.03.2017
comment
Повторно запустить службу webdev: Вы имеете в виду запустить службу WebDAV? Или запустить службу веб-разработки? - person Peter Mortensen; 18.11.2019

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

Команда $ 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

$ docker run image_name:tag_name

Для получения дополнительных сведений о запуске Docker вы можете посетить справочник по запуску Docker < / em>.

Это лучший материал для понимания Docker.

person Rajat Tyagi    schedule 22.02.2019

Чтобы просмотреть список всех образов на вашем хосте Docker, запустите:

  $ docker images
   REPOSITORY          TAG           IMAGE ID            CREATED             SIZE
   apache_snapshot     latest        13037686eac3        22 seconds ago      249MB
   ubuntu              latest        00fd29ccc6f1        3 weeks ago         111MB

Теперь вы можете запустить образ Docker как контейнер в интерактивном режиме:

   $ docker run -it apache_snapshot /bin/bash

ИЛИ, если у вас нет изображений локально, найдите в Docker Hub изображение для загрузки:

    $ docker search ubuntu
    NAME                            DESCRIPTION             STARS  OFFICIAL  AUTOMATED
    ubuntu                          Ubuntu is a Debian...   6759   [OK]       
    dorowu/ubuntu-desktop-lxde-vnc  Ubuntu with openss...   141              [OK]
    rastasheep/ubuntu-sshd          Dockerized SSH ser...   114              [OK]
    ansible/ubuntu14.04-ansible     Ubuntu 14.04 LTS w...   88               [OK]
    ubuntu-upstart                  Upstart is an even...   80     [OK]

Извлеките образ Docker из репозитория с помощью команды docker pull:

     $ docker pull ubuntu

Запустите образ Docker как контейнер:

     $ docker run -it ubuntu /bin/bash
person Abhishek Patwa    schedule 14.02.2020

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

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"

Я добавил точку входа, которая у меня сработала:

docker run -it --entrypoint /bin/sh для изображений без Bash.

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

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

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

person Raihanhbh    schedule 03.09.2019

person    schedule
comment
Объяснение было бы в порядке. - person Peter Mortensen; 18.11.2019