写点什么

深入理解 Docker Run 命令:从入门到精通

  • 2024-02-29
    北京
  • 本文字数:1468 字

    阅读完需:约 5 分钟

前言

在容器化技术的领域中,Docker 无疑是最为广泛使用的工具之一。而 docker run 命令则是使用 Docker 进行容器管理的核心命令之一。本文将深入探讨 docker run 命令的使用方法,旨在帮助初学者快速入门并掌握该命令的各种用法。


获取更多技术资料,请点击!

Docker Run 简介

docker run 命令用于在 Docker 中运行一个容器。它可以基于指定的镜像创建并启动一个新的容器实例。docker run 命令的基本语法如下:


docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
复制代码


其中,OPTIONS 是一系列用于配置容器运行方式的选项,IMAGE 是要运行的容器镜像,COMMAND 是在容器内部执行的命令,ARG 是传递给命令的参数。


docker run 执行流程


首先在指定镜像上创建一个可写的容器层


然后使用指定的命令(COMMAND)启动它


docker run 相当于执行了两个 API:/containers/create/containers/(id)/start


常用参数


使用示例

  1. 使用tomcat7镜像,创建名为tomcat_hogwarts的容器,如下:


docker run --name tomcat_hogwarts tomcat:7
复制代码


这样运行,会直接将容器运行日志打印出来,所以一般都需要加 -d 参数,否则无法继续敲其他命令



  1. 使用tomcat7镜像,创建名为tomcat_hogwarts01的容器,并使用-d参数,让其后台运行,命令如下:


docker run -d --name tomcat_hogwarts01 tomcat:7
复制代码


运行如下图:



通过-d参数创建容器,不影响我们运行其他命令。


  1. 使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的随机端口,命令如下:


docker run -d -P --name tomcat_muller tomcat:7
复制代码



  1. 使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的 8888 端口,命令如下:


docker run -d -p 8888:8080 --name tomcat_salah tomcat:7
复制代码



可以看到 PORTS 一列,主机的 8888 端口指向了容器的 8080 端口。


  1. 使用镜像 tomcat:7 ,以后台模式启动一个容器,将容器的 8080 端口映射到主机127.0.0.1:8888 端口容器名字自定义为 tomcat77主机的目录 /usr/local/tomcat/webapp 映射到容器/usr/local/tomcat/webapps 启动容器后,在容器内执行 bash 命令,命令如下:


docker run -d -p 127.0.0.1:8888:8080 -v /usr/local/webapps:/usr/local/webapps -it --name tomcat77 tomcat:7 bash
复制代码



  1. 容器 8080 端口映射到主机的 1111 端口-it 以交互模式启动一个容器,在容器内执行 bash 命令


注:如果这里加了-d 参数,则不会进入容器的 CLI 界面;如果不加 bash 命令,则会执行 tomcat 容器本身自动会执行的命令( catalina.sh run ),也会进不了 CLI 界面,因为会打印一堆运行日志


docker run -it -p 1111:8080 tomcat:7 bash
复制代码



  1. 以 root 权限创建容器,当进入容器之后,拥有 root 权限去执行命令


# 创建容器docker run -d --name jenkin_hogwarts --privileged=true jenkins/jenkins# 进入容器docker exec -it jenkin_hogwarts bash
复制代码



不加 --privileged的例子


# 创建容器docker run -d --name jenkins_muller jenkins/jenkins
# 进入容器docker exec -it -uroot jenkins_muller bash
复制代码



注:


  • -uroot:是给了 root 用户身份,但并没有真正的 root 权限

  • --privileged:真正让当前用户有了 root 权限


  1. 设置容器自动重启


docker run -d --name jenkins_salah --restart always jenkins/jenkins
复制代码


  1. 退出容器


exit         #容器直接退出ctrl +P +Q  #容器不停止退出     ---注意:这个很有用的操作
复制代码

总结

通过本文的介绍,相信大家已经对 docker run 命令有了更深入的理解。无论是基本的交互式运行,还是高级的数据卷挂载和端口映射,docker run 都能满足我们在容器化应用开发和部署过程中的各种需求。


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
深入理解 Docker Run 命令:从入门到精通_霍格沃兹测试开发学社_InfoQ写作社区