软件测试|docker create 与 docker run的异同,你都会了吗?
Docker Run vs Docker Create:创建和管理容器的差异
Docker是一种流行的容器化平台,它提供了多种命令来创建和管理容器。其中两个常用的命令是"docker run"和"docker create"。虽然它们都用于创建容器,但在用法和功能上有一些区别。让我们来看看它们之间的差异。
docker create
docker create
可以创建一个新的容器,但是这个容器不会被启动,语法如下:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
options 说明:
option | 作用 |
---|---|
--name | 指定容器的名字 |
使用示例
根据 mysql
镜像,创建一个hogwarts_mysql
容器
docker create --name=hogwarts_mysql mysql
注:如果我们要启动该容器,我们可以使用docker start
命令来启动该容器
这种分离的创建和启动过程可以为我们提供更多的灵活性和控制权,因为我们可以在容器创建后,根据需要对其进行更改或配置。
docker run
docker run
可以创建并运行一个新的容器,语法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
注: 跟 docker create
一样的语法格式,只不过可以运行容器甚至进入容器内部
COMMAND
:需要在容器内执行的命令
执行流程
- 首先在指定镜像上创建一个可写的容器层
- 然后使用指定的命令(COMMAND)启动它
docker run
相当于执行了两个 操作:/containers/create
、/containers/(id)/start
常用options参数
option | 作用 |
---|---|
-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" | 设置环境变量 |
--restar | t Docker 重启后,容器是否自动重启 |
--privileged | 容器内是否使用真正的 root 权限 |
-p 的写法
docker run -p ip:主机端口:容器端口
docker run -p 主机端口:容器端口 (常用)
docker run -p 容器端口
使用示例:
docker run --name muller_mysql mysql
总结
"docker run"命令用于创建并启动一个新的容器,而"docker create"命令仅用于创建容器,而不会自动启动它。使用"docker create"可以在容器创建后对其进行更多的配置或修改,然后使用"docker start"来手动启动容器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-09-07 技术分享 | Jenkins job 机制该如何使用?
2020-09-07 一文搞定 Linux 常用高频命令