Docker命令中的各种参数使用(run、v、rm、-w、-u、-e)
目录
- 介绍
- docker -v 挂载 (目录)
- docker -v 挂载 (Volume)
- docker --rm
- docker -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 这个目录。
上一篇:Linux系统java进程CPU占用过高的问题及排查
栏 目:其它服务器
下一篇:Tomcat的安装与使用及Maven与Servlet的使用教程
本文标题:Docker命令中的各种参数使用(run、v、rm、-w、-u、-e)
本文地址:https://zz.feitang.co/server/29979.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





