Docker命令中的各种参数使用(run、v、rm、-w、-u、-e)

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录介绍docker -v 挂载 (目录)docker -v 挂载 (Volume)docker –rmdocker -w -it

介绍

run 的各种参数

docker run [OPTIONS] IMAGE [COMMOND] [ARGS…] # OPTIONS 说明 –name=”容器新名字”: 为容器指定一个名称; -d: 后台运行容器,并返回容器ID,也即启动守护式容器; -i:以交互模式运行容器,通常与 -t 同时使用; -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用; -P: 随机端口映射; -p: 指定端口映射,有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort -w: 指定命令执行时,所在的路径 # IMAGE XXX_IMAGE_NAME:XXX_IMAGE_VER # COMAND 例:mvn -Duser.home=xxx -B clean package -Dmaven.test.skip=true

常用OPTIONS补足:

–name:容器名字

–network:指定网络

–rm:容器停止自动删除容器

-i:–interactive,交互式启动

-t:–tty,分配终端

-v:–volume,挂在数据卷

-d:–detach,后台运行

(-w 在run中,似乎也可直接使用)

在已运行的容器中运行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

常用选项:

  -d:–detach ,后台运行命令

  -e, –env list             设置env

-i, –interactive         启用交互式

  -t, –tty                     启用终端

  -u, –user string        指定用户 (格式: [:])

-w, –workdir string       指定工作目录

在容器内执行/bin/bash命令

# eg: 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。 docker run -it centos /bin/bash

docker -v 挂载 (目录)

比如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# docker run -it -v /test:/soft centos /bin/bash

冒号”:”前面的目录是宿主机目录,后面的目录是容器内目录。

关于docker目录挂载的总结

# docker run -it -v /test:/soft centos /bin/bash

一、容器目录不可以为相对路径

二、宿主机目录如果不存在,则会自动生成

# docker run -it -v test1:/soft centos /bin/bash

三、宿主机的目录如果为相对路

・容器内的/soft目录挂载的是宿主机上的/var/lib/docker/volumes/test1/_data目录

・所谓的相对路径指的是/var/lib/docker/volumes/,与宿主机的当前目录无关。

四、如果在容器内修改了目录的属主和属组,那么对应的挂载点会跟着修改

其他更多挂载目录的方法 (可以使用镜像直接挂载)

docker-修改容器的挂载目录三种方式

docker -v 挂载 (Volume)

Docker的数据持久化—数据不随着container的结束而结束,

数据存在于host机器上:(以下两种中的一种) 存在于host的某个指定目录中(使用bind mount),使用docker自己管理的volume(/var/lib/docker/volumes下)

Docker Volume示例

-v maven-repository-volume:/MyPoroject/mvn/.m2

查看【maven-repository-volume】的volume:

docker volume inspect my-volume

注意:

host机器的目录路径必须为全路径(即需要以/或~/开始的路径),不然docker会把这个目录当做volume

docker –rm

容器退出时就能够自动清理容器内部的文件系统。

即当使用docker stop后,会直接删除容器,若数据没有挂载出来的话就直接被删除了,所以这个需要看自己具体的业务场景去使用。

docker run的–rm选项详解

docker -w -it

-w 指的是在哪个目录下去执行这个命令。这个目录指的是容器内的目录。

docker run -i –rm –name getSign -v /opt/getSign:/usr/src/app -v /opt/getSign:/root/.npm -w /usr/src/app dockerhub.com/common/node:19.7.0 bash -c “pnpm install && pnpm run build:dev”

可以看到上面的示例,我把容器外的/opt/getSign的代码目录挂载到了容器内的/usr/src/app目录。那么此时我的代码就是在容器内的 /usr/src/app 目录下了,所以我想执行pnpm命令的时候,需要指定执行目录为 -w /usr/src/app 这个目录。

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容