深入解析Docker Run命令:创建和启动容器的完全指南


深入解析Docker Run命令:创建和启动容器的完全指南

文章插图
简介
Docker是一种流行的容器化平台 , 用于构建、分发和运行应用程序 。其中一个最基本且重要的Docker命令是docker run , 用于创建和启动容器 。本文将详细解析docker run命令的用途、参数和示例 , 帮助您全面掌握创建和启动容器的过程 。
docker run
在Docker中 , 容器是运行应用程序的独立环境 。docker run命令用于根据指定的镜像创建和启动一个新的容器 。下面是docker run命令的基本语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
注1:docker run与docker create语法格式一样 , 只是docker run会创建并运行容器甚至可以进入容器内部
注2:COMMAND需要在容器内执行的命令
docker run 执行流程
第一步 , 在指定镜像上创建一个可写的容器层
第二步 , 使用指定的命令(COMMAND)启动它
简而言之 , docker run 相当于执行了两个 API:/contAIners/create、/containers/(id)/start
options参数说明
docker run命令有很多的参数 , 很多参数都拥有重要的作用 , 这里我们介绍一下最常用的部分参数
  • -i , 以交互模式运行容器 , 通常与 -t 同时使用
  • -t , 启动容器后 , 为容器分配一个命令行 , 通常与-i同时使用
  • -v , 目录映射 , 容器目录挂载到宿主机目录 , 格式: <host目录>:<容器目录>
  • -d , 守护进程 , 后台运行该容器
  • -p , 指定端口映射 , 格式:主机(宿主)端口:容器端口
  • -P , 随机端口映射 , 容器内部端口随机映射到主机的端口
  • -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 权限
注:-p参数的用法
docker run -p ip:主机端口:容器端口
docker run -p 主机端口:容器端口 (常用)
docker run -p 容器端口
使用示例
  1. 使用Tomcat7镜像 , 创建名为tomcat_hogwarts的容器 , 如下:
docker run --name tomcat_hogwarts tomcat:7
这样运行 , 会直接将容器运行日志打印出来 , 所以一般都需要加 -d参数 , 否则无法继续敲其他命令
深入解析Docker Run命令:创建和启动容器的完全指南

文章插图
  1. 使用tomcat7镜像 , 创建名为tomcat_hogwarts01的容器 , 并使用-d参数 , 让其后台运行 , 命令如下:
docker run -d --name tomcat_hogwarts01 tomcat:7
运行如下图:
深入解析Docker Run命令:创建和启动容器的完全指南

文章插图
通过-d参数创建容器 , 不影响我们运行其他命令 。
  1. 使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的随机端口 , 命令如下:
docker run -d -P --name tomcat_muller tomcat:7
深入解析Docker Run命令:创建和启动容器的完全指南

文章插图
  1. 使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的 8888 端口 , 命令如下:
docker run -d -p 8888:8080 --name tomcat_salah tomcat:7
深入解析Docker Run命令:创建和启动容器的完全指南

文章插图
可以看到 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
深入解析Docker Run命令:创建和启动容器的完全指南

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


    推荐阅读