软件测试|docker create 与 docker run的异同,你都会了吗?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 软件测试|docker create 与 docker run的异同,你都会了吗?

image.png

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

image.png

注:如果我们要启动该容器,我们可以使用docker start命令来启动该容器

这种分离的创建和启动过程可以为我们提供更多的灵活性和控制权,因为我们可以在容器创建后,根据需要对其进行更改或配置。

docker run

docker run可以创建并运行一个新的容器,语法如下:

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

注: 跟 docker create一样的语法格式,只不过可以运行容器甚至进入容器内部

COMMAND :需要在容器内执行的命令

执行流程

  1. 首先在指定镜像上创建一个可写的容器层
  2. 然后使用指定的命令(COMMAND)启动它
  3. docker run相当于执行了两个 操作:/containers/create/containers/(id)/start

常用options参数

option 作用
-i 以交互模式运行容器,通常与 -t 同时使用
-t 启动容器后,为容器分配一个命令行,通常与 -i 同时使用
-v 目录映射,容器目录挂载到宿主机目录,格式: :<容器目录>
-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

image.png

总结

"docker run"命令用于创建并启动一个新的容器,而"docker create"命令仅用于创建容器,而不会自动启动它。使用"docker create"可以在容器创建后对其进行更多的配置或修改,然后使用"docker start"来手动启动容器。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
Ubuntu Cloud Native 测试技术
百度搜索:蓝易云【云原生之使用Docker部署ubuntu测试环境】
请注意,以上步骤仅是简单的使用Docker部署Ubuntu测试环境的示例。在实际应用中,您可能需要根据测试需求和应用场景进行更多的配置和优化。同时,在退出容器时,容器并未删除,您可以使用 `docker rm <容器名称>`命令来删除容器。在进行测试时,请谨慎操作,并确保对Docker的使用有一定的了解,以避免不必要的问题。
134 2
Need to install docker-compose(1.18.0+) by yourself first and run this script again.
Need to install docker-compose(1.18.0+) by yourself first and run this script again.
457 0
|
3月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
11月前
|
存储 关系型数据库 MySQL
|
11月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
125 3
|
12月前
|
Docker 容器
docker run
【9月更文挑战第08天】
643 1
|
11月前
|
Shell 应用服务中间件 nginx
docker学习--最详细的docker run 各子命令解释与应用
`docker run` 是 Docker 中用于启动容器的基本命令。常用子命令包括 `-i`(交互模式)、`-t`(分配终端)、`-d`(后台运行)、`-p`(端口映射)、`--name`(指定容器名)。例如,`docker run -it nginx:1.20 /bin/bash` 可以创建并进入交互式容器。使用 `-d` 可在后台运行容器,`-p` 可将容器端口映射到主机端口,`--name` 则用于自定义容器名称以便管理。
1304 0
|
监控 Linux API
在Docker中,docker run指令执行后,生成了哪些进程?
在Docker中,docker run指令执行后,生成了哪些进程?
|
JSON Shell 数据格式
在Docker中,docker run cmd entrypoint 有什么区别?
在Docker中,docker run cmd entrypoint 有什么区别?