美文网首页区块链入门AI-大数据Docker
【知识分享】3.docker run命令详解

【知识分享】3.docker run命令详解

作者: 笔名辉哥 | 来源:发表于2021-03-26 22:32 被阅读0次

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

相关文章

网友评论

    本文标题:【知识分享】3.docker run命令详解

    本文链接:https://www.haomeiwen.com/subject/zpwshltx.html