Я построил изображение докера из файла докеров. Я вижу, что изображение было построено успешно, но что мне с ним делать? Разве он не может работать как контейнер?
Новое для докеров, возможно, недоразумение на моем конце, любая помощь будет отличной.
Я построил изображение докера из файла докеров. Я вижу, что изображение было построено успешно, но что мне с ним делать? Разве он не может работать как контейнер?
Новое для докеров, возможно, недоразумение на моем конце, любая помощь будет отличной.
Конкретный способ его запуска зависит от того, дали ли вы изображение тегу/имени или нет.
$ 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/ для получения дополнительной информации.
Сделайте следующие шаги:
$ docker images
вы получите список всех локальных изображений докеров с указанными тегами.
$ docker run image_name:tag_name
Если вы не указали tag_name, он автоматически запустит изображение с помощью "последнего" тега.
Вместо image_name вы также можете указать идентификатор изображения (no tag_name).
Чтобы перечислить изображения докера
$ docker images
Если ваше приложение хочет работать с портом 80, и вы можете предоставить другой порт для локального связывания, скажем, 8080
$ docker run -d --restart=always -p 8080:80 image_name:version
Вы можете просмотреть доступные изображения, используя
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, так что если вы остановите свой контейнер, он будет автоматически удален.
Получите имя или идентификатор изображения, которое вы хотите запустить, с помощью этой команды: 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
Для получения дополнительной информации, пожалуйста, ознакомьтесь с официальной ссылкой на запуск докера.
Вот пример запуска службы 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
У меня такая же проблема. Я запустил докер, и он создал контейнер с определенным 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
Поскольку вы создали изображение из файла 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/.
это лучший материал, чтобы понять докер.
Для тех, у кого была такая же проблема, но возникла ошибка типа
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
$ 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*