Docker容器运行常用参数详解
作者:大饼酥
1、容器运行示例
在Docker中运行一个容器需要使用docker run
命令,这个命令后面可以跟很多参数来定制容器的行为。以下是一个运行容器示例以及参数详解。
docker run -d --name my-container -p 8080:80 -v /host/data:/container/data --restart=always --env MY_VAR=value --network bridge my-image
- -d:后台运行容器,并返回容器ID;
- --name:为容器指定一个名称;
- -p:指定端口映射,格式为:主机端口:容器端口;
- -v:挂载一个目录或文件;
- --restart:设置容器重启策略,如 always、on-failure等;
- --env:设置环境变量;
- --network:连接容器到一个网络。
2、容器运行参数详解
2.1、镜像名
镜像是 Docker 的核心概念之一,用于创建 Docker 容器。镜像可以从镜像仓库中拉取。运行容器时,必须指定镜像名。
# 运行 Nginx 镜像 docker run nginx:1.19
指定特定版本(标签)的nginx镜像,1.19是版本号;如果不指定版本,Docker 会默认拉取 latest 标签的镜像。
注:latest标签,由于它的字面意思是“最新的”,所以很多时候也容易被误解,其实latest就是个普通标签,不要期望它是最新或最稳定的版本,因为它取决于当时 lastest 标签被关联到的版本。镜像的维护者可能会使用不同的标签策略,因此在生产环境中最好明确指定具体的版本号。它只是个名字,也没有其它附加作用,更不会自动更新。
2.2、容器名(--name)
每个运行的容器都有一个唯一的 ID,但为了方便管理,你可以为容器指定一个易于记忆的名称。这样,在后续操作时,可以直接使用容器名称,而不是容器 ID。
# 容器命名为 my-nginx docker run --name my-nginx nginx
2.3、端口映射(--publish)
端口映射可以通过在运行命令中使用 -p 选项(p小写,全称 --publish)来完成,该选项的语法如下: -p <主机端口>:<容器端口>。端口映射用于将容器内部的端口映射到宿主机的端口,使得外部可以访问容器内运行的服务。
# 将容器的 8080 端口映射到宿主机的 80 端口 docker run -d -p 80:8080 tomcat
2.4、目录映射(--volume)
端口映射可以通过在运行命令中使用 -v 选项(全称 --volume)来完成,该选项的语法如下: -v <主机目录>:<容器目录>。目录映射用于将宿主机的目录挂载到容器内,保留容器中的数据,以便数据可以在宿主机和容器之间共享。
# 将宿主机的 /data 目录挂载到容器的 /app 目录 docker run -d -v /data:/app tomcat
2.5、重启策略 (--restart)
容器的重启策略是指在容器退出时Docker是否应该自动重启容器。目的是为了确保容器应用的高可用性和稳定性,通过设置重启策略,可以在容器出现故障或异常情况时自动重新启动容器,以避免影响业务运行。
# 设置容器在退出时总是重启 docker run -d --restart always tomcat
重启策略有以下几种:
- no:不自动重启。
- on-failure:容器因错误退出(非零退出代码)时重启。可选的重启次数可以通过--restart-max-retries设置。
- always:无论退出状态如何,总是重启容器。
- unless-stopped:容器除非被手动停止,否则总是重启。
2.6、运行模式(--detach)
在Docker中,-d(全称 --detach) 选项用于启动一个分离模式的容器,这意味着容器会在后台运行,不会占用当前的终端会话。
# 后台运行容器 docker run -d tomcat
2.7、网络模式(--network)
Docker 提供了多种网络模式,适应不同的网络需求。 常见的网络模式有:
- bridge: 默认模式,Docker 创建一个独立的网络桥接器(bridge),容器通过此桥接器与宿主机和其他容器通信。
- host: 容器直接使用宿主机的网络栈,与宿主机共享网络接口。
- none: 容器没有网络连接,完全隔离。
- container:<name|id>: 容器与指定的其他容器共享网络栈。
# 以桥接网络模式运行容器 docker run -d --network bridge tomcat
2.8、环境变量(--env)
在 Docker 中,-e(全称 --env)选项用于设置环境变量。环境变量用于向容器传递运行时所需的配置信息。
# 向容器传递一个环境变量 ENV,其值为 production docker run -d -e "ENV=production" tomcat
2.9、特权模式(--privileged)
在Docker中,--privileged=true选项允许容器以特权模式(超级用户权限)运行,从而获得几乎与主机相同的权限。这意味着容器可以访问和控制主机的所有硬件设备、操作系统内核和其他系统资源。
# 赋予容器特权模式 docker run --privileged -d tomcat
到此这篇关于Docker容器运行常用参数详解的文章就介绍到这了,更多相关Docker运行常用参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!