docker run

docker run命令演示

功能

创建一个新的容器并运行一个命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

别名 docker container run

参数

**-d:**后台运行容器,并返回容器 ID;

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

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

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

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

**--name="nginx-lb":**为容器指定一个名称;

**-h "mars":**指定容器的 hostnam

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

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

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

**--network="bridge":**指定容器的网络连接类型;

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

**--volume , -v:**绑定一个卷

--rm:shell 退出的时候自动删除容器

比如

#使用 docker 镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为 mynginx。 docker run --name mynginx -d nginx:latest

#使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主 机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

无参运行

演示在ubuntu上创建一个centos容器

centos默认命令是bin/bash,但是这里没有进行长时交互的命令,所以就没有任何效果

查看有没有创建容器,

执行 docker ps 查看运行的容器

执行 docker ps -a 查看所有创建的容器

使用长时交互命令运行实例,加上参数 -it, 执行docker run -it centos:7.5.1804

使用ps查看运行时容器

执行exit退出centos容器

-d参数

-d参数,指定后台运行

nginx镜像进行前台运行和后台运行

查看运行 时容器

然后对nginx进行退出,ctrl c退出

再次查看所有创建的容器

前台运行如果按了ctrl c退出,或者网络断开导致shell断开,容器就退出了。

使用 -d 选项 进行后台运行够否防止前台误操作,执行命令 docker run -d nginx:1.24.0

查看运行时容器

-it参数

-it参数 指定容器提供伪终端和交互能力

-it 选项就是 进行命令行输入后,能够像shell一样正常交互。命令执行完之后,会有回馈的显示,并再显示一个终端再次交互。 执行exit退出容器

-i参数

-i参数 指定容器具有交互能力

-i选项 就是能和容器进行交互,但是没有终端的显示。 执行exit退出容器

-t参数

-t参数 指定容器提供伪终端

-t选项 只是提供一个伪终端,但是不能提供交互的能力,输入 比如 ps -ef之后,并没有反馈

-P参数

-P参数 容器内部端口随机映射到主机端口

由于这个端口并没有在防火墙打开,所以在宿主机上进行访问,输入 curl 127.0.0.1:32768

-p参数

-p参数指定 宿主机和容器端口映射,格式为:主机(宿主)端口:容器端口

在web端访问宿主机的8081端口

--name参数

--name参数是为容器指定一个名称

之前未指定名称时,名称是引擎随机起的名字,并不好记忆。自己为容器起一个好记的名字,方便和容器交互。

比如执行命令 docker stop myNginx,关掉myNginx服务

-h参数

-h参数是指定容器的hostname

使用-h指定后的效果

-e参数

-e参数是设置容器的环境变量

--cpuset-cpus参数

--cpuset-cpus参数是 绑定容器到指定cpu运行

首先查看cpu的信息,执行命令 cat /proc/cpuinfo,确定自己是几核的cpu

我目前是双核的cpu。

执行命令docker run -d --name myNginx1 --cpuset-cpus="0-1" nginx:1.24.0

这里执行命令 我是让myNginx1 在我的双核cpu上去跑。

我再改一下没在单核上去跑

-m参数

-m参数是设定容器使用内存的最大值

首先运行一个容器,不指定其内存最大值

查看这个容器的内存限制

执行命令 docker stats myNginx4

其内存上限为1.9个g左右

查看服务器的内存,执行命令 free -m

而服务器的内存也才1.9g左右。

现在创建一个容器,指定其内存上限,

执行命令 docker run -d --name myNginx5 -m 500m nginx:1.24.0

查看两个容器内存限制,执行命令 docker stats myNginx4 myNginx5

可以看到这个容器的内存上限就设定为了500M

--link参数

--link参数是把一个容器链接到另一个容器,这样就能访问另外一个容器的网络

首先开启一个容器,执行命令 docker run -it --name myCentos1 centos:7.5.1804

然后再 复制会话,开启另一个容器, 执行命令链接myCentos1 docker run -it --name myCentos2 --link myCentos1:mywebsite1 centos:7.5.1804,其中myCentos1:mywebsite1是给myCentos1起别名为mywebsite1

在myCentos2容器中就能ping通myCentos1的网络了,也能ping通别名的网络

本质上是在 /etc/hosts 中对myCentos1的ip地址做了本地dns解析

这里myCentos2能ping通myCentos1,但是myCentos1不能ping通myCentos2

--rm参数

--rm参数 是shell退出的时候自动删除容器

创建一个容器 执行命令docker run -it --name myCentos3 centos:7.5.1804

在复制会话查看运行容器 执行命令docker ps

将容器退出后,查看运行容器,myCentos3就没有了

但是查看所有创建的容器,执行命令 docker ps -a

虽然容器退出了,但是这条记录 依然在所有创建的容器中。

现在创建一个容器,指定--rm参数。执行命令 docker run -it --name myCentos4 --rm centos:7.5.1804

查看运行时容器

将容器退出,再查看所有创建的容器,执行命令 docker ps -a | grep myCentos4

可以看到,在退出容器后,容器的信息在创建的所有容器中都没有记录了。因为指定--rm参数之后,容器在退出后,会自动完成清理

docker ps命令演示

功能

列出容器

语法

docker ps [OPTIONS]

别名 docker container ls, docker container list, docker container ps

参数

**-a :**显示所有的容器,包括未运行的

**-f :**根据条件过滤显示的内容

**--format :**指定返回值的模板文件。如 json 或者 table

**-l :**显示 latest 的容器。

**-n :**列出最近创建的 n 个容器。

**--no-trunc :**不截断输出。

**-q :**静默模式,只显示容器编号。

**-s :**显示总的文件大小。

比如

docker ps -a

-a参数

-a参数 显示所有的容器,包括未运行的

-f参数

-f参数 根据条件过滤显示的内容

对myNginx5容器进行个过滤

--format参数

--format参数 指定返回值的模板文件。如 json 或者 table

-l参数

-l参数 显示 latest 的容器。

-n参数

-n参数 列出最近创建的 n 个容器。

--no-trunc参数

--no-trunc参数 不截断输出。

-q参数

-q参数 静默模式,只显示容器编号。

-s参数

-s参数 显示总的文件大小。

相关推荐
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.22 分钟前
Keepalived VIP迁移邮件告警配置指南
运维·服务器·笔记
物联网软硬件开发-轨物科技26 分钟前
【轨物洞见】告别“被动维修”!预测性运维如何重塑老旧电站的资产价值?
运维·人工智能
程序员允诺30 分钟前
[DevOps实战] 彻底解决依赖地狱:如何编译全静态、可移植的 Xorriso 工具
运维·devops
酣大智32 分钟前
接口模式参数
运维·网络·网络协议·tcp/ip
一只自律的鸡1 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
!chen1 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
莫大3301 小时前
2核2G云服务器PHP8.5+MySQL9.0+Nginx(LNMP)安装WordPress网站详细教程
运维·服务器·nginx
刚刚入门的菜鸟1 小时前
php-curl
运维·web安全·php
REDcker1 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
2501_927773072 小时前
imx6驱动
linux·运维·服务器