java这个docker run命令做什么?
我有一个docker run命令,我只是想知道-v "..":".." -w ".." maven mvn clean
部分是什么。。。你在干什么
docker run --rm --name ${DOCKER_IMAGE_NAME}_build -v "$(pwd)":/usr/src/mymaven -w /usr/src/mymaven maven:3.6.0-jdk-8-alpine mvn clean install package
我认为它将操作系统“$(pwd)”上的本地卷映射到docker卷中的docker文件夹,即/usr/src/mymaven,然后,它在/usr/src/mymaven“文件夹中执行带有“w”的命令,但由于它在本地$pwd目录中执行的映射,所以它执行"maven:3.6.0-jdk-8-alpine mvn clean install package"
部分,启动mvn构建过程,但是maven:3.6.0-jdk
是什么呢... 我知道这是一个图像,但它如何知道从何处提取该图像,以及如何能够直接为该图像的maven执行该命令
# 1 楼答案
该命令的-v部分将卷绑定到要启动的容器。在本例中-v“$(pwd)”:/usr/src/mymaven 将当前目录作为/usr/src/mymaven添加到容器中
命令的-w部分将容器中的工作目录设置为/usr/src/mymaven 那之后的部分呢
maven:3.6.0-jdk-8-alpine->;这就是你要启动的容器
mvn清洁安装包->;这是在容器中启动的命令(因此在/usr/src/mymaven工作目录中)
基本上,这个run命令会启动一个容器,运行maven,并在当前目录中执行这项操作,您从该目录开始作为源代码运行
有关参数的更多信息:docker doc on run arguments