Docekr常用命令详细说明
命令(docker 命令 参数……) | 描述及参数说明 |
---|---|
build -t 镜像名:标签 构建目录 | 构建镜像,使用 Dockerfile 文件来构建一个镜像。 -t :指定要创建的目标镜像名 构建目录:Dockerfile 文件所在目录,可以指定Dockerfile的绝对路径 |
run 参数 值 …… 镜像名 | -i:交互式操作; -t:终端;-d:后台;-P:将容器内部使用的网络端口随机映射到我们使用的主机上;-p : 使容器内部端口绑定到指定的主机端口 <本地端口>:<容器内端口>;-v:挂载主机目录 <本地目录>:<容器内目录>;–name:容器名;–add-host:添加容器的域名解析 格式-host:ip;-e key=value:设置环境变量;–restart:容器退出时重新启动策略以应用 |
start/stop/restart 容器ID | 启动、停止、重启容器 |
attach 容器ID/exec -it 容器ID 进入容器时的初始化进程 | 进入-d的后台容器;推荐大家使用docker exec命令,因为exec此退出容器终端,不会导致容器的停止。 |
export 容器ID 导出后的文件名 | 导出容器快照到本地文件。 |
cat 容器快照文件 | docker import - 镜像名:标签 | 可以使用 docker import 从容器快照文件中再导入为镜像 |
import 快照URL 镜像名 | 通过指定 URL 或者某个目录来导入 |
rm -f 容器ID | 删除容器 |
port 容器ID | 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号 |
logs -f [容器ID或者名字] | 可以查看容器内部的标准输出,像使用 tail -f 一样来输出容器内部的标准输出。 |
inspect 容器ID | 查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。 |
images | 列出本地主机上的镜像 |
pull 镜像名:标签 | 获取一个新的镜像,不填写标签就默认拉取最终版本 |
search 镜像名(如:nginx) | 从 Docker Hub 网站来搜索镜像 |
rmi 镜像名 | 删除镜像使用 docker rmi 命令 |
commit -参数=“值” …… 容器ID 镜像名:标签 | 命令 docker commit 来提交容器副本 -m: 提交的描述信息 -a: 指定镜像作者 |
tag 容器ID 镜像名:标签 | docker tag 命令,为镜像添加一个新的标签。 |
login 仓库地址 | 登录Docker镜像仓库,需要输入用户名和密码,登录成功后,我们就可以从 docker hub 上拉取自己账号下的全部镜像。不填写仓库地址就是从官方仓库登录,填写了就是制定仓库登录 |
push 镜像仓库名或者地址/镜像名:标签 | 用户登录后,可以通过 docker push 命令将自己的镜像推送到 Docker Hub |
CentOS容器system (PID 1)错误解决方法
CentOS的Docker容器推荐使用如下方式创建容器
docker run -itd --privileged --name myCentos centos /usr/sbin/init
创建完成后: 请使用以下命令进入容器
docker exec -it myCentos /bin/bash
可以避免报错内容:
System has not been booted with systemd as init system (PID 1). Can’t operate.
Failed to connect to bus: Host is down
修改仓库源
vi /ect/docker/daemon.json
{
"registry-mirrors":["https://xirgurp7.mirror.aliyuncs.com"]
}
保存并重启docker服务即可
Docekr run命令参数列表
Docker run命令官方文档:https://docs.docker.com/engine/reference/commandline/run/
以下是转自官方文档,并且翻译了一下,可以参考:
名称,简写 | 默认 | 描述 |
---|---|---|
–add-host | 添加自定义主机到IP的映射(host:ip) | |
–attach , -a | 附加到STDIN,STDOUT或STDERR | |
–blkio-weight | 块IO(相对权重),介于10到1000之间,或者为0禁用(默认为0) | |
–blkio-weight-device | 块IO重量(相对设备重量) | |
–cap-add | 添加Linux功能 | |
–cap-drop | 放弃Linux功能 | |
–cgroup-parent | 容器的可选父cgroup | |
–cidfile | 将容器ID写入文件 | |
–cpu-count | CPU数量(仅Windows) | |
–cpu-percent | CPU百分比(仅Windows) | |
–cpu-period | 限制CPU CFS(完全公平的调度程序)期限 | |
–cpu-quota | 限制CPU CFS(完全公平的调度程序)配额 | |
–cpu-rt-period | API 1.25以上 限制CPU实时时间(以微秒为单位) | |
–cpu-rt-runtime | API 1.25以上 限制CPU实时运行时间(以微秒为单位) | |
–cpu-shares , -c | CPU份额(相对重量) | |
–cpus | API 1.25以上 CPU数量 | |
–cpuset-cpus | 允许执行的CPU(0-3,0,1) | |
–cpuset-mems | 允许执行的MEM(0-3,0,1) | |
–detach , -d | 在后台运行容器并打印容器ID | |
–detach-keys | 覆盖分离容器的键序列 | |
–device | 将主机设备添加到容器 | |
–device-cgroup-rule | 将规则添加到cgroup允许的设备列表中 | |
–device-read-bps | 限制从设备读取的速率(每秒字节数) | |
–device-read-iops | 限制从设备读取的速率(每秒IO) | |
–device-write-bps | 限制对设备的写入速率(每秒字节数) | |
–device-write-iops | 限制对设备的写入速率(每秒IO) | |
–disable-content-trust | true | 跳过图像验证 |
–dns | 设置自定义DNS服务器 | |
–dns-opt | 设定DNS选项 | |
–dns-option | 设定DNS选项 | |
–dns-search | 设置自定义DNS搜索域 | |
–domainname | 容器NIS域名 | |
–entrypoint | 覆盖图像的默认ENTRYPOINT | |
–env , -e | 设置环境变量 | |
–env-file | 读入环境变量文件 | |
–expose | 公开一个或多个端口 | |
–gpus | API 1.40+ 要添加到容器中的GPU设备(“全部”通过所有GPU) | |
–group-add | 添加其他群组即可加入 | |
–health-cmd | 运行命令以检查运行状况 | |
–health-interval | 运行检查之间的时间(ms | s | m | h)(默认为0s) | |
–health-retries | 需要连续报告不健康状况 | |
–health-start-period | API 1.29+ 开始运行状况重试倒计时之前,容器初始化的开始时间(毫秒|秒|米|小时)(默认为0秒) | |
–health-timeout | 允许运行一次检查的最长时间(ms | s | m | h)(默认为0s) | |
–help | 打印用量 | |
–hostname , -h | 容器主机名 | |
–init | API 1.25以上 在容器内运行一个初始化程序,以转发信号并获取进程 | |
–interactive , -i | 即使未连接STDIN也保持打开状态 | |
–io-maxbandwidth | 系统驱动器的最大IO带宽限制(仅Windows) | |
–io-maxiops | 系统驱动器的最大IOps限制(仅Windows) | |
–ip | IPv4地址(例如172.30.100.104) | |
–ip6 | IPv6地址(例如2001:db8 :: 33) | |
–ipc | 使用的IPC模式 | |
–isolation | 集装箱隔离技术 | |
–kernel-memory | 内核内存限制 | |
–label , -l | 在容器上设置元数据 | |
–label-file | 读入行分隔的标签文件 | |
–link | 将链接添加到另一个容器 | |
–link-local-ip | 容器IPv4 / IPv6链接本地地址 | |
–log-driver | 容器的日志记录驱动程序 | |
–log-opt | 日志驱动程序选项 | |
–mac-address | 容器MAC地址(例如92:d0:c6:0a:29:33) | |
–memory , -m | 内存限制 | |
–memory-reservation | 内存软限制 | |
–memory-swap | 交换限制等于内存加交换:“-1”以启用无限交换 | |
–memory-swappiness | -1 | 调整容器内存交换(0到100) |
–mount | 将文件系统挂载附加到容器 | |
–name | 为容器分配一个名称 | |
–net | 将容器连接到网络 | |
–net-alias | 为容器添加网络范围的别名 | |
–network | 将容器连接到网络 | |
–network-alias | 为容器添加网络范围的别名 | |
–no-healthcheck | 禁用任何容器指定的健康检查 | |
–oom-kill-disable | 禁用OOM杀手 | |
–oom-score-adj | 调台主持人的OOM首选项(-1000至1000) | |
–pid | 使用的PID名称空间 | |
–pids-limit | 调音容器pids限制(将-1设置为无限制) | |
–platform | 实验(守护程序)API 1.32+ 如果服务器支持多平台,则设置平台 | |
–privileged | 赋予此容器扩展的特权 | |
–publish , -p | 将容器的端口发布到主机 | |
–publish-all , -P | 将所有公开的端口发布到随机端口 | |
–read-only | 将容器的根文件系统挂载为只读 | |
–restart | no | 容器退出时重新启动策略以应用 |
–rm | 退出时自动删除容器 | |
–runtime | 用于此容器的运行时 | |
–security-opt | 安全选项 | |
–shm-size | / dev / shm的大小 | |
–sig-proxy | true | 代理接收到该过程的信号 |
–stop-signal | SIGTERM | 停止容器的信号 |
–stop-timeout | API 1.25以上 停止容器的超时时间(以秒为单位) | |
–storage-opt | 容器的存储驱动程序选项 | |
–sysctl | Sysctl选项 | |
–tmpfs | 挂载tmpfs目录 | |
–tty , -t | 分配伪TTY | |
–ulimit | Ulimit选项 | |
–user , -u | 用户名或UID(格式:<名称| uid> [:<组| gid>]) | |
–userns | 要使用的用户名称空间 | |
–uts | 使用的UTS名称空间 | |
–volume , -v | 绑定挂载卷 | |
–volume-driver | 容器的可选音量驱动器 | |
–volumes-from | 从指定的容器挂载卷 | |
–workdir , -w | 容器内的工作目录 |