Docker运行语法

时间:2017-02-16 16:02:53

标签: docker

任何人都可以澄清此命令中的语法:

$ docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py

我可以看到:

Host directory: /src/webapp
Container: /webapp

但是training/webapp是什么?那是图像吗?如果是这样,为什么会有/

之后的所有内容(即python app.py)是否要在容器中运行?

=====

并用此命令澄清:

$ docker run -d -P --name web -v /webapp training/webapp python app.py

如果仅指定-v /webapp,它是如何工作的 - 相当于/webapp:/webapp

2 个答案:

答案 0 :(得分:1)

您可以找到docker run here

的文档

基本结构如下:

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

  • -d让你以分离模式运行docker容器,这样你就不会看到控制台输出
  • -P将所有公开的端口发布到主机接口
  • --name您的容器名称
  • -v您装入的卷host/path:container/path,您的情况/src/webapp位于您的本地计算机上,/webapp位于您的容器内

https://docs.docker.com/engine/getstarted/step_six/

  • training/webapp是泊坞窗图片的用户名和图片名称。我已经为您链接了DockerHub上的图像位置

  • python app.py是命令(python),当容器启动时运行参数(app.py)

答案 1 :(得分:0)

是的,training/webapp是图片名称。 Dockerhub只接受这种方式的名称。 training是用户名,webapp是图片名称。

如果您不使用dockerhub(默认情况下这是来自docker pull image的图像存储库)并在本地构建图像,那么您可以给出任何名称。

python app.py : command that will execute when docker up
--name web    : this will be name of container
-v /src/webapp:/webapp  : this will create volume webapp and mount on /src/webapp
--publish-all, -P : Publish all exposed ports to random ports

如需更多帮助,请参阅docker run Documentation