从dockerfile构建Docker映像后,我看到映像已成功构建,但我该如何处理它呢?我不应该能够运行它作为一个容器吗?
当前回答
$ 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图像 如果你的应用程序想在80端口上运行,你可以暴露一个不同的端口来本地绑定,比如8080: $ docker run -d——restart=always -p 8080:80 image_name:version
下面是一个在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
对于那些有同样的问题,但遇到错误的人
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*
由于您已经从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的最好材料。
推荐文章
- 试图连接到https://index.docker.io时,网络超时
- 为每个Docker图像查找图层和图层大小
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 如何用docker-compose更新现有图像?
- 如何在构建docker期间设置环境变量
- 拉访问拒绝存储库不存在或可能需要docker登录
- 如何在ENTRYPOINT数组中使用Docker环境变量?
- Docker:容器不断地重新启动
- Mac/OS X上的/var/lib/docker在哪里
- 如何用docker-compose标记docker图像
- 从环境文件中读入环境变量
- 禁用特定RUN命令的缓存
- 从Docker容器获取环境变量
- E: gnupg, gnupg2和gnupg1似乎没有安装,但是这个操作需要其中一个
- 如何从docker更改默认docker注册表。IO到我的私人注册表?