docker run根据镜像创建运行容器(基础)

根据 镜像 创建 一个 新容器 并 运行

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数:
  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

  • (重要)-d: 后台运行容器(退出当前窗口,容器不会关闭),并返回容器ID

  • -i: 以交互模式运行容器,通常与 -t 同时使用;

  • -P: 随机端口映射,容器内部端口随机映射到主机的端口

  • (重要)-p: 指定端口映射,格式为:主机(宿主)端口:容器端口

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

  • --name="nginx-lb"(重要): 为容器指定一个名称;

  • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 设置环境变量;

  • --env-file=[]: 从指定文件读入环境变量;

  • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

  • -m :设置容器使用内存最大值;

  • (重要)--net="bridge": 指定网络模式,支持 bridge(默认),host,none,container 四种模式;

  • --link=[]: 添加链接到另一个容器;

  • --expose=[]: 开放一个端口或一组端口;

  • (重要)--volume , -v: 挂载数据卷
    例子:-v /tomcat_logs:/usr/local/tomcat/logs 前面是宿主机目录、后面是容器内目录

  • (重要)--restart=always:docker服务启动或重启后,该容器自动启动

  • (重要)--privileged=true 容器拥有root权限

例子(推荐)

docker run -d -p 8080:8080 tomcat

解释:

  • 默认拉取 tomcat:latest
  • -d 参数:表示在后台运行,显示容器id
  • -p 8080:8080 参数:第一个8080是主机端口,第二个8080是docker端口

访问 http://localhost:8080 一般能访问到tomcat首页
如果提示404,见:Docker启动tomcat,访问首页出现404错误

例子

docker run -p 8080:8080 tomcat

运行后,在控制台中打印tomcat日志信息

注意: 一般很少用这种方式运行,因为不能退出,一旦退出,也就停止了该容器

例子-启动容器并进入交互模式

docker run -it -p 8080:8080 tomcat /bin/bash

根据tomcat镜像创建容器,并以交互模式启动容器,然后运行容器里面的/bin/bash(linux bash命令提示符)

命令提示符变成:

root@ff5dd1a26c26:/usr/local/tomcat#
  • 当前shell环境是docker容器中的环境
  • 当前目录在docker容器中的 /usr/local/tomcat
  • 执行 exit 命令,退出 docker 容器的shell环境,同时 关闭 该容器

如何退出docker 容器的shell环境,还不关闭容器?需要用docker exec命令


原文出处:/show_1EF5k2rR90s3.html