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

 更新时间:2023年06月27日 11:44:25   作者:iRayCheung  
本文主要介绍了Docker命令中的各种参数使用(run、v、rm、-w、-u、-e),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

介绍

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        指定用户 (格式: <name|uid>[:<group|gid>])
  -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 这个目录。

到此这篇关于Docker命令中的各种参数使用(run、v、rm、-w、-u、-e)的文章就介绍到这了,更多相关Docker命令的各种参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器 日志中文乱码问题解决办法

    Docker容器 日志中文乱码问题解决办法

    这篇文章主要介绍了Docker容器 日志中文乱码问题解决办法的相关资料,需要的朋友可以参考下
    2016-12-12
  • Google和Facebook不使用Docker的原理解析

    Google和Facebook不使用Docker的原理解析

    这篇文章主要介绍了Google和Facebook不使用Docker的原理解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • 使用Docker部署打包发布springboot项目

    使用Docker部署打包发布springboot项目

    本文主要介绍了使用Docker部署打包发布springboot项目,从安装docker到多种方式打包发布,编译,镜像,容器等问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker学习笔记之Docker部署Java web系统

    Docker学习笔记之Docker部署Java web系统

    这篇文章主要介绍了Docker学习笔记之Docker部署Java web系统,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • docker学习笔记之把容器commit成镜像的方法

    docker学习笔记之把容器commit成镜像的方法

    本篇文章主要介绍了docker学习笔记之把容器commit成镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • docker Overlay目录占用的磁盘空间过大问题

    docker Overlay目录占用的磁盘空间过大问题

    这篇文章主要介绍了docker Overlay目录占用的磁盘空间过大问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • docker容器如何优雅的终止详解

    docker容器如何优雅的终止详解

    最近公司在试验如何将项目部署到docker容器中去,这其中涉及到一个技术环节,那就是如何让docker容器优雅的终止。所谓优雅终止,指的就是程序在退出前有清理资源,保存必要中间状态,持久化内存数据的机会。下面通过这篇大家一起由简单到复杂逐一考量一下。
    2016-11-11
  • docker容器内运行jupyter映射到本地方式

    docker容器内运行jupyter映射到本地方式

    通过在容器内指定Jupyter的IP为0.0.0.0,并使用--no-browser参数,可以正确将Jupyter端口映射到本地,具体步骤包括在本地机器运行Docker容器,指定端口映射;在容器内运行Jupyter Notebook,设置--ip和--no-browser参数(一般还需--allow-root)
    2024-11-11
  • 一步步详解如何在Ubuntu 18.04上安装Docker

    一步步详解如何在Ubuntu 18.04上安装Docker

    Docker是基于Go语言实现的云开源项目,下面这篇文章主要给大家介绍了关于如何在Ubuntu 18.04上安装Docker的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法

    Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法

    这篇文章主要介绍了Windows10安装WSL2 Ubuntu20.04并设置docker环境的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论