龙空技术网

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

测试者穆勒 122

前言:

此刻我们对“docker开机启动容器”可能比较关心,姐妹们都想要学习一些“docker开机启动容器”的相关知识。那么小编同时在网上搜集了一些有关“docker开机启动容器””的相关内容,希望兄弟们能喜欢,看官们快快来学习一下吧!

简介

Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。其中一个最基本且重要的Docker命令是docker run,用于创建和启动容器。本文将详细解析docker run命令的用途、参数和示例,帮助您全面掌握创建和启动容器的过程。

docker run

在Docker中,容器是运行应用程序的独立环境。docker run命令用于根据指定的镜像创建和启动一个新的容器。下面是docker run命令的基本语法:

bash复制代码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参数的用法

bash复制代码docker run -p ip:主机端口:容器端口docker run -p 主机端口:容器端口 (常用) docker run -p 容器端口
使用示例使用tomcat7镜像,创建名为tomcat_hogwarts的容器,如下:
bash复制代码docker run --name tomcat_hogwarts tomcat:7

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

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

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

运行如下图:

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

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

bash复制代码docker run -d -P --name tomcat_muller tomcat:7
使用镜像 tomcat:7 以后台模式启动一个容器将容器的 8080 端口映射到主机的 8888 端口,命令如下:
bash复制代码docker run -d -p 8888:8080 --name tomcat_salah tomcat:7

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

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

bash复制代码docker run -d -p 127.0.0.1:8888:8080 -v /usr/local/webapps:/usr/local/webapps -it --name tomcat77 tomcat:7 bash
容器 8080 端口映射到主机的 1111 端口-it 以交互模式启动一个容器,在容器内执行 bash 命令

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

bash复制代码docker run -it -p 1111:8080 tomcat:7 bash
以 root 权限创建容器,当进入容器之后,拥有 root 权限去执行命令
bash复制代码# 创建容器docker run -d --name jenkin_hogwarts --privileged=true jenkins/jenkins# 进入容器docker exec -it jenkin_hogwarts bash

不加 --privileged的例子

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

注:

-uroot:是给了 root 用户身份,但并没有真正的 root 权限--privileged:真正让当前用户有了 root 权限设置容器自动重启

bash复制代码docker run -d --name jenkins_salah --restart always jenkins/jenkins
退出容器
bash复制代码exit         #容器直接退出ctrl +P +Q  #容器不停止退出     ---注意:这个很有用的操作
总结

docker run命令是Docker中最基本且重要的命令之一,用于创建和启动容器。通过了解和灵活使用不同的选项和参数,可以定制容器的名称、端口映射、数据持久化、环境变量等设置。希望本文对大家理解和使用docker run命令有所帮助,并能够顺利创建和启动自己的Docker容器!

获取更多技术资料,请点击! > 霍格沃兹测试开发学社|免费学习资料大放送,助你事半功倍! - 霍格沃兹测试开发学社 - 测试人社区

标签: #docker开机启动容器 #docker 启动容器命令 #docker run start