Answers:
运行它的具体方式取决于您是否为图像指定了标签/名称。
$ 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
没有名称,只需使用ID:
$ 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
,您还可以指定图像ID(无tag_name)。
列出Docker映像
$ docker images
如果您的应用程序想使用端口80运行,并且您可以公开其他端口以本地绑定,请说8080:
$ docker run -d --restart=always -p 8080:80 image_name:version
您可以使用以下方法查看可用的图像:
docker images
然后,您可以在分离模式下运行,以便您的终端仍然可用。您可以使用存储库名称(带有或不带有标签)或图像ID来运行它的几种选择:
docker run -d repository
docker run -d repository:tag
docker run -d image_id
然后您可以使用以下命令检查容器是否正在运行
docker ps
docker ps
给您一个容器ID。您可以使用它,也可以只使用前2/3个字符使用以下命令进入容器:
docker exec -it container_id /bin/bash
您可以使用docker stop container_id
和停止它docker rm container_id
。
您还可以使用-rm
参数运行容器,因此,如果停止容器,它将自动被删除。
使用以下命令获取要运行的图像的名称或ID:
docker images
Docker run命令以以下方式使用:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
在指定图像名称或ID之前,我在下面包括了dispatch,name,publish,volume和restart选项:
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运行参考。
这是在Docker中运行Webdev服务的示例。图像的名称是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
由于您已经从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 run命令
$ docker run image_name:tag_name
有关Docker运行的更多说明,您可以访问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
对于那些也有相同问题,但遇到类似错误的人
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
这里印在“ NAME”下的人性化名称在 这里有用吗?