1. 参考
(1)Docker run 命令参数及使用
https://blog.csdn.net/luolianxi/article/details/107169954
(2)Docker run 命令[简洁清爽版]
https://www.runoob.com/docker/docker-run-command.html
(3)docker run官网说明
https://docs.docker.com/engine/reference/commandline/run/
(4)【知识分享】Docker 命令大全
https://www.jianshu.com/p/7fa8e918768e
(5)docker镜像市场
https://hub.docker.com/
语法
#运行示例
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#运行docker内命令
docker run -it IMAGE java -version
OPTIONS说明:
中文说明:
--add-host list 添加自定义主机到ip映射(书写格式为:主机:ip)
-a, --attach list 附加到STDIN、STDOUT或STDERR上
--blkio-weight uint16 Block IO (相对权重),取值10到1000之间,0为禁用(默认0)
--blkio-weight-device list Block IO weight (相对于设备的权重) (默认为数组的形式)
--cap-add list 添加Linux功能
--cap-drop list 删除Linux功能
--cgroup-parent string 容器的可选父级对照组项
--cidfile string 将容器ID写入文件
--cpu-period int 限制CPU CFS(完全公平调度程序)周期
--cpu-quota int 限制CPU CFS(完全公平的调度程序)上限
--cpu-rt-period int 限制CPU运行时周期(以微秒为单位)
--cpu-rt-runtime int 限制CPU实时运行时间(以微秒为单位)
-c, --cpu-shares int CPU 共享 (相对权重的设定)
--cpus decimal 设定cpu的数量
--cpuset-cpus string 允许执行的cpu (0-3,0,1)
--cpuset-mems string 允许执行的MEMs (0-3,0,1)
-d, --detach 在后台运行容器并打印容器ID
--detach-keys string 覆盖分离容器的键序列
--device list 向容器添加主机设备
--device-cgroup-rule list 向 cgroup 允许的设备列表中添加一个或多个规则
--device-read-bps list 限定设备的读取速率(单位: byte/s)(默认为 [])
--device-read-iops list 限定设备的读取速率(单位:IO/s)(默认为 [])
--device-write-bps list 限定设备的写入速率(单位: byte/s)(默认为 [])
--device-write-iops list 限定设备的写入速率(单位:IO/s)(默认为 [])
--disable-content-trust 跳过镜像验证(默认为 true)
--dns list 设置自定义DNS服务器
--dns-option list 设置DNS选项
--dns-search list 设置自定义的DNS搜索域
--entrypoint string 覆盖镜像的默认入口点
-e, --env list 设置环境变量
--env-file list 读取环境变量内容
--expose list 公开一个端口或多个端口
--group-add list 添加其他要加入的组
--health-cmd string 命令运行以检查健康
--health-interval duration 运行检查之间的时间(ms|s|m|h)(默认为 0s)
--health-retries int 连续的失败需要报告不健康
--health-start-period duration 启动健康重试倒计时前容器初始化的启动周期(ms|s|m|h)(默认为 0s)
--health-timeout duration 健康检查运行情况的最大时间值 格式为:(ms|s|m|h) (默认 0s)
--help 打印出使用情况
-h, --hostname string 定义容器主机名
--init 在容器中运行初始化,以转发信号并获取进程
-i, --interactive 即使没有连接,也保持STDIN开放
--ip string 设定容器的 IPv4 地址 (例如,192.168.155.139)
--ip6 string 设定IPv6地址(例如,2001:db8::33)
--ipc string 使用IPC模式
--isolation string 容器隔离技术
--kernel-memory bytes 内核内存限制
-l, --label list 在容器上设置元数据
--label-file list 在以行分隔的标签文件中读取
--link list 向另一个容器添加链接
--link-local-ip list 容器 IPv4/IPv6 链接本地地址
--log-driver string 设定容器的日志驱动
--log-opt list 设定日志驱动器选项
--mac-address string 配置容器MAC地址(例如,92:d0:c6:0a:29:33)
-m, --memory bytes 设定内存限额
--memory-reservation bytes 内存软限制
--memory-swap bytes 交换限制等于内存加上交换:'-1',以启用无限交换
--memory-swappiness int 优化容器内存交换 (0 到 100) (默认为 -1)
--mount mount 将文件系统挂载附加到容器
--name string 为容器指定一个名称
--network string 将容器连接到网络
--network-alias list 为容器连接的网络添加别名
--no-healthcheck 禁止任何容器指定 HEALTHCHECK
--oom-kill-disable 禁止OOM事件被杀死
--oom-score-adj int 优化主机的OOM事件 ,参数范围 (-1000 到 1000)
--pid string 设定PID命名
--pids-limit int 优化容器pid限制(如果设置-1则为无限制)
--privileged 赋予容器扩展的权限
-p, --publish list 将容器的端口发布到主机
-P, --publish-all 将所有公开的端口发布到随机端口
--read-only 将容器的根文件系统挂载为只读(后面会详细讲到)
--restart string 配置容器的重启策略,当容器退出时重新启动(默认为“no”)
--rm 当容器退出时自动移除这个容器
--runtime string 使用容器的运行时
--security-opt list 指定docker启动的安全项
--shm-size bytes /dev/shm 的大小(这个可以使其容量进行动态的扩展)
--sig-proxy 设置代理接收京城信号 (默认为 true)
--stop-signal string 停止容器的信号 (默认为 "SIGTERM")
--stop-timeout int 设置超时停止容器(以秒为单位)
--storage-opt list 设定容器的存储驱动程序选项
--sysctl map 指定系统控制项 (默认为 map[] 的格式)
--tmpfs list 挂载tmpfs目录
-t, --tty 为当前容器分配一个客户端
--ulimit ulimit 启动需要限制的项(默认为数组的形式)
-u, --user string 用户名或UID(格式为: <name|uid>[:<group|gid>])
--userns string 使用用户名称空间
--uts string 使用UTS名称空间
-v, --volume list 绑定安装卷(关于容器卷,在Docker容器数据卷中会具体的讲解)
--volume-driver string 容器的可选卷驱动程序
--volumes-from list 指定容器装载卷
-w, --workdir string 容器内的工作目录
更多说明参考官网:https://docs.docker.com/engine/reference/commandline/run/
启动参数
格式:docker run <选项> <容器名> <镜像:标签>
$ sudo docker run -d \
--name gitlab \
--hostname 192.168.10.30 \
-p80:80 -p443:443 -p22:22 \
--restart unless-stopped \
-v /home/sbw/qj/docker/gitlab/config:/etc/gitlab \
-v /home/sbw/qj/docker/gitlab/data:/var/opt/gitlab \
-v /home/sbw/qj/docker/gitlab/logs:/var/log/gitlab \
twang2218/gitlab-ce-zh:11.1 #指定镜像
e890b9c7fe670b770276a0f85c0f749e5556ef6ec8d117bf4bb33e0ca1ab3335
~/qj/docker/gitlab$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e890b9c7fe67 twang2218/gitlab-ce-zh:11.1 "/assets/wrapper" 2 minutes ago Up 2 minutes (healthy) 0.0.0.0:2222->22/tcp, 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp gitlab
说明:
-d 后台启动,打印容器id
-p 8080:80 将宿主机的端口映射至容器暴露的端口
--name gitlab 设置容器名称为gitlab
--restart unless-stopped 设置容器重启策略
Docker容器的重启策略:
no 默认策略,在容器退出时不重启容器
on-failure 在容器非正常退出时(退出状态非0),才会重启容器
on-failure:3 在容器非正常退出时重启容器,最多重启3次
always 在容器退出时总是重启容器
unless-stopped 在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
--hostname 192.168.10.30 设置主机名或域名
-v 挂载目录至宿主机,将gitlab的配置文件、数据文件、log文件的目录映射到本地目录中
实例说明
$ docker run -it --rm ubuntu:18.04 bash
root@e7009c6ce357:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
参数说明:
-it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
--rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
ubuntu:18.04:这是指用 ubuntu:18.04 镜像为基础来启动容器。
bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash
网友评论