关于docker:深入理解-Docker-Run-命令从入门到精通

123次阅读

共计 2236 个字符,预计需要花费 6 分钟才能阅读完成。

前言

在容器化技术的畛域中,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

罕用参数

option 作用
-i 以交互模式运行容器,通常与 -t 同时应用
-t 启动容器后,为容器调配一个命令行,通常与 -i 同时应用
-v 目录映射,容器目录挂载到宿主机目录,格局:<host 目录 >:< 容器目录 >
-d 守护过程,后盾运行该容器
-p 指定端口映射,格局:主机 (宿主) 端口: 容器端口
-P 随机端口映射,容器外部端口随机映射到主机的端口(49153 起始 49153 到 65535)
-u 以什么用户身份创立容器
–name “nginx-lb”容器名字
-m,–memory bytes 设置容器应用内存最大值
-h, –hostname string 指定容器的 host name
–dns 8.8.8.8 指定容器 dns 服务器
-e username=“ritchie” 设置环境变量
–restart Docker 重启后,容器是否主动重启
–privileged 容器内是否应用真正的 root 权限

应用示例

  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 都能满足咱们在容器化利用开发和部署过程中的各种需要。

正文完
 0