Docker build命令执行路径咨询:需进入cowsay目录还是主目录?
关于docker build命令执行路径的疑问解答
Hey there! 我来帮你理清这个问题~
首先得搞懂docker build命令里最后那个.的作用:它代表构建上下文目录——Docker会从这个目录里读取所有构建镜像需要的文件(包括默认找的Dockerfile)。所以核心判断标准是:你的Dockerfile在哪里?
假设你的目录结构是这样的:
mm/ # 你的主目录 └── cowsay/ ├── Dockerfile # 构建cowsay镜像的配置文件 └── 其他构建依赖文件(比如脚本、资源)
那有两种可行的执行方式:
方式1:进入cowsay文件夹执行(推荐)
先通过cd cowsay进入该目录,然后执行:docker build -t mm/cowsay .这里的
.就是当前的cowsay目录,Docker会自动在这里找到Dockerfile,并把整个目录的内容作为构建上下文,这样所有依赖文件都能被正确读取。方式2:在主目录mm下执行
如果你不想切换目录,也可以直接指定上下文路径为cowsay文件夹,命令改成:docker build -t mm/cowsay ./cowsay这样Docker会去
./cowsay目录里找Dockerfile,效果和方式1一样。
另外补充一句:你用mm/cowsay作为镜像标签非常合适,因为mm是你的Docker Hub用户名,后续如果要把镜像推送到Hub,直接执行docker push mm/cowsay就可以了,完全匹配~
内容的提问来源于stack exchange,提问作者Simke
相关产品推荐
相关产品推荐

