Відповіді:
Конкретний спосіб її запуску залежить від того, ви дали зображенню тег / ім’я чи ні.
$ 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 .
docker ps
перелічує контейнери, а не зображення. Якщо ви хочете створити зображення з контейнера, ви повинні docker commit
. Ви можете використовувати NAME у комітеті (наприклад docker commit _NAME_ _imagename_
)
Виконайте наступні дії:
$ docker images
Ви отримаєте список усіх локальних зображень Docker із зазначеними тегами.
$ docker run image_name:tag_name
Якщо ви не вказали, tag_name
воно автоматично запустить зображення з тегом 'остання'.
Замість цього image_name
можна також вказати ідентифікатор зображення (без імені тега).
Щоб перелічити зображення Docker
$ 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 використовується наступним чином:
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 .
Ось приклад запуску послуги webdev в 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
У мене була така ж проблема. Я запустив своє зображення 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
Оскільки ви створили зображення з 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 .
Це найкращий матеріал для розуміння Докера.
Щоб переглянути список усіх зображень на хості 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 із сховища за допомогою команди pull docker:
$ docker pull ubuntu
Запустіть зображення Docker як контейнер:
$ docker run -it ubuntu /bin/bash
$ 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*
Для тих, хто мав таку ж проблему, але зіткнувся з помилкою
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
docker ps -a
тут не корисні?