docker run
1.常用参数
bash
docker run
-d, --detach # 在后台运行容器。
--name # 指定容器的名称。
-e, --env # 设置环境变量。
-p, --publish # 发布容器的端口到主机。
-v, --volume # 挂载卷。
--rm # 容器停止后自动删除。
-it # 同时使用 -i 和 -t 参数,通常用于需要交互式操作的容器,比如启动一个 Bash shell。
--network # 指定容器要连接的网络。
--restart # 设置容器的重启策略。
--user # 指定以哪个用户身份运行容器内部的进程。
--privileged # 给予容器额外的权限。
--env-file # 从文件加载环境变量。
-h x.xx.xx # 设置容器主机名
--add-host hostname:IP # 注入 hostname <> IP 解析
2.示例
bash
例:
# 在后台运行一个名为 my-nginx 的容器,并将容器的80端口绑定到主机的8080端口
docker run -d --name nginx -p 8080:80 nginx
# 从镜像运行为容器,指定名字为MyWordPress,--link为链接关系,抓取db容器,将db容器的地址写入到自己的hosts文件中,给容器起个别名为mysql,-p 8080:80表示外部网络要访问内部网络时,-p为定义nat规则,将物理机目标8080端口转换为目标容器的80端口。-d表示以守护进程的方案运行(放在后台运行),如果不加-d进程会占用当前终端,wordpress表示基于wordpress镜像启动这个容器,不加版本型号,就是默认为latest最新稳定版。
docker run -d --name db --env MYSQL_ROOT_PASSWORD=example mariadb
docker run --name MyWordPress --link db:mysql -p 8080:80 -d wordpress
# 运行名为centos的容器,并在其中以交互式方式启动一个 Bash shell,退出centos容器时,自动删除
docker run -it --rm centos /bin/bash
# 可以加电自启选项,会跟着真实机重启而重启
docker run --name test2 --restart=always -d wordpress
# 以名为163的镜像启动名为test3的容器,注入host解析www.aaa.com:10.10.22.3
docker run --name test3 --add-host www.aaa.com:10.10.22.3 -d 163
# 挂载当前目录($(pwd))到容器中的 /app 目录,并运行一个 Python 应用
docker run -it --rm -v $(pwd):/app python:3 python /app/my_script.py
# 运行一个容器并将其连接到 my-network 网络
docker run -d --name my-container --network my-network nginx
# 以非 root 用户运行容器
docker run -it --user 1000 ubuntu bash
# 运行一个具有特权的容器,可以访问宿主机的设备
docker run -it --privileged ubuntu bash
# 从文件加载环境变量并运行容器
docker run --env-file ./env.list my-image