从dockerfile构建Docker映像后,我看到映像已成功构建,但我该如何处理它呢?我不应该能够运行它作为一个容器吗?
具体的运行方式取决于你是否给图像一个标签/名称。
$ 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图像 您将得到一个包含所有指定标记的本地Docker映像的列表。 $ docker运行image_name:tag_name 如果你没有指定tag_name,它会自动运行一个带有'latest'标签的图像。 除了image_name,还可以指定一个图像ID(没有tag_name)。
下面是一个在Docker中运行webdev服务的例子。 映像的名称是morrisjobke/webdav。您可以从Docker Hub中获取它。
运行这些映像之后,就可以在http://localhost:8888/webdav上访问WebDAV实例。在内部,文件夹/var/webdav被用作WebDAV的根目录。
你可以通过以下方式运行这个容器:
$ docker run -d -e USERNAME=test -e PASSWORD=test -p 8888:80 morrisjobke/webdav
列出Docker映像 $ docker图像 如果你的应用程序想在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映像,它创建了一个带有特定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 run命令
$ docker run image_name:tag_name
有关Docker运行的更多说明,请访问Docker运行参考。
这是理解Docker的最好材料。
对于那些有同样的问题,但遇到错误的人
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运行-it——entrypoint /bin/sh来查看没有Bash的图片。
示例(来自已批准的示例):
run -it --entrypoint /bin/sh ubuntu:12.04
参考:https://gist.github.com/mitchwongho/11266726
$ 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*
要查看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
Hey,
只需要5个步骤就可以将docker image作为容器运行
docker build -t dockerImageName。 docker命令-t -d -p 3030:3000——name containerName dockerImageName
您可以指定自己的新containerName
检查容器运行类型
Docker ps -all 4. 最后打开你的谷歌chrome浏览器,输入localhost:3030
您已经成功地将docker image作为容器运行 恭喜:)
如果docker容器处于退出状态,则键入下面的命令运行
docker start ContainerId
推荐文章
- 我的码头集装箱没有网络
- 如何从私有docker注册表中删除图像?
- 创建多个标签码头镜像
- Docker -如何将文件从镜像复制到主机?
- 如何防止docker在系统启动时自动启动容器?
- 什么是Docker映像“层”?
- 无法从docker-compose连接到docker
- Docker错误无法删除Docker容器,冲突:无法删除存储库引用
- 如何让容器在Kubernetes上运行?
- 如何备份docker容器的数据卷?
- Docker入口点运行bash脚本被“拒绝权限”
- 我如何复制Docker作为非根?
- 如何禁用容器上的自动重启?
- 如何传递参数到Dockerfile?
- 如何知道docker是否已经登录到docker注册服务器