在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

Docker 常用指令详解

Docker 清风 846℃ 0评论

docker 分为客户端和服务端两部分, docker 为客户端调用的命令, dockerd 为服务端调用的命令, 本文着重介绍客户端的用法。

主要用法:docker [ docker命令选项 ] [ 子命令 ] [ 子命令选项 ]

docker [ 子命令 ] –help 可查看每个子命令的详细用法。

docker命令选项列表

选项 说明 其他
–config [string] 客户端本地配置文件路径 默认为 ~/.docker
-D, –debug 启用调试模式
–help 打印用法
-H, –host list 通过socket访问指定的docker守护进程(服务端) unix:// , fd:// , tcp://
-l, –log-level [string] 设置日志级别 (debuginfowarnerrorfatal) 默认为 info
–tls 启用TLS加密
–tlscacert [string] 指定信任的CA根证书路径 默认为 ~/.docker/ca.pem
–tlscert [string] 客户端证书路径 默认为 ~/.docker/cert.pem
–tlskey [string] 客户端证书私钥路径 默认为 ~/.docker/key.pem
–tlsverify 启用TLS加密并验证客户端证书
-v, –version 打印docker客户端版本信息

1. 镜像仓库相关

1.1 查找镜像

docker search [条件]

1.2 获取镜像

docker pull [仓库]:[tag]

仓库格式为 [仓库url]/[用户名]/[应用名] , 除了官方仓库外的第三方仓库要指定url, 用户名就是在对应仓库下建立的账户, 一般只有应用名的仓库代表官方镜像, 如 ubuntu、tomcat 等, 而 tag 表示镜像的版本号, 不指定时默认为 latest

1.3 推送镜像到仓库

docker push [镜像名]:[tag]

1.4 登录/退出第三方仓库

docker [login/logout] [仓库地址]

2. 本地镜像

2.1 查看本地镜像

docker images

2.2 删除本地镜像

docker rmi [镜像名 or 镜像id]

如果用镜像id作为参数, 可以只输入前几位, 能唯一确定即可(可以同时删除多个镜像, 空格隔开)。此外, 如果该镜像启动了容器需要先删除容器。

2.3 查看镜像详情

docker inspect [镜像名 or 镜像id]

2.4 打包本地镜像, 使用压缩包来完成迁移

docker save [镜像名] > [文件路径]

2.5 导入镜像压缩包

docker load < [文件路径]

2.6 修改镜像tag

docker tag [镜像名 or 镜像id] [新镜像名]:[新tag]

3. 容器相关

3.1 创建、启动容器并执行相应的命令

docker run [参数] [镜像名 or 镜像id] [命令]

如果没有指定命令是执行镜像默认的命令, 创建镜像的时候可设置。另外要注意的一点, 启动容器后要执行一个前台进程(就是能在控制台不断输出)才能使容器保持运行状态, 否则, 命令执行完容器就关闭了。

run命令常用选项

选项 说明
-d 后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl + C 退出命令同时会关闭容器
-i 以交互模式运行容器, 通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端, 通常与 -i 同时使用
–name “anyesu-container” 为容器指定一个别名, 不指定时随机生成
-h docker-anyesu 设置容器的主机名, 默认随机生成
–dns 8.8.8.8 指定容器使用的DNS服务器, 默认和宿主一致
-e docker_host=172.17.0.1 设置环境变量
–cpuset=”0-2″ or –cpuset=”0,1,2″ 绑定容器到指定CPU运行
-m 100M 设置容器使用内存最大值
–net bridge 指定容器的网络连接类型, 支持 bridge / host / none / container 四种类型
–ip 172.18.0.13 为容器分配固定ip(需要使用自定义网络)
–expose 8081 –expose 8082 开放一个端口或一组端口, 会覆盖镜像设置中开放的端口
-p [宿主机端口]:[容器内端口] 宿主机到容器的端口映射, 可指定宿主机的要监听的ip, 默认为 0.0.0.0
-P 注意是大写的, 宿主机随机指定一组可用的端口映射容器 expose 的所有端口
-v [宿主机目录路径]:[容器内目录路径] 挂载宿主机的指定目录(或文件)到容器内的指定目录(或文件)
–add-host [主机名]:[ip] 为容器hosts文件追加host, 默认会在hosts文件最后追加 [主机名]:[容器ip]
–volumes-from [其他容器名] 将其他容器的数据卷添加到此容器
–link [其他容器名]:[在该容器中的别名] 添加链接到另一个容器, 在本容器hosts文件中加入关联容器的记录, 效果类似于 --add-host
单字符选项可以合并, 如 -i -t 可以合并为 -it

3.2 查看运行中的容器

docker ps
加 -a 选项可查看所有的容器

3.3 开启/停止/重启容器

# 关闭容器(发送SIGTERM信号,做一些’退出前工作’,再发送SIGKILL信号)
docker stop [容器名 or 容器id]
# 强制关闭容器(默认发送SIGKILL信号, 加-s参数可以发送其他信号)
docker kill [容器名 or 容器id]
# 启动容器
docker start [容器名 or 容器id]
# 重启容器
docker restart [容器名 or 容器id]

3.4 删除容器

docker rm [容器名 or 容器id]

可以指定多个容器一起删除, 加 -f 选项可强制删除正在运行的容器

3.5 查看容器详情

docker inspect [容器名 or 容器id]

3.6 查看容器中正在运行的进程

docker top [容器名 or 容器id]

3.7 将容器保存为镜像

docker commit [容器名 or 容器id] [镜像名]:[tag]

3.8 使用Dockerfile构建镜像

docker build -t [镜像名]:[tag] -f [DockerFile名] [DockerFile所在目录]

4. 硬件资源相关

4.1 显示容器硬件资源使用情况

docker stats [选项] [0个或多个正在运行容器]

4.2 更新容器的硬件资源限制

docker update [选项]

基础子命令列表

选项 说明
attach 进入运行中的容器, 显示该容器的控制台界面。注意, 从该指令退出会导致容器关闭
build 根据 Dockerfile 文件构建镜像
commit 提交容器所做的改为为一个新的镜像
cp 在容器和宿主机之间复制文件
create 根据镜像生成一个新的容器
diff 展示容器相对于构建它的镜像内容所做的改变
events 实时打印服务端执行的事件
exec 在已运行的容器中执行命令
export 导出容器到本地快照文件
history 显示镜像每层的变更内容
images 列出本地所有镜像
import 导入本地容器快照文件为镜像
info 显示 Docker 详细的系统信息
inspect 查看容器或镜像的配置信息, 默认为json数据
kill -s 选项向容器发送信号, 默认为SIGKILL信号(强制关闭)
load 导入镜像压缩包
login 登录第三方仓库
logout 退出第三方仓库
logs 打印容器的控制台输出内容
pause 暂停容器
port 容器端口映射列表
ps 列出正在运行的容器, -a 选项显示所有容器
pull 从镜像仓库拉取镜像
push 将镜像推送到镜像仓库
rename 重命名容器名
restart 重启容器
rm 删除已停止的容器, -f 选项可强制删除正在运行的容器
rmi 删除镜像(必须先删除该镜像构建的所有容器)
run 根据镜像生成并进入一个新的容器
save 打包本地镜像, 使用压缩包来完成迁移
search 查找镜像
start 启动关闭的容器
stats 显示容器对资源的使用情况(内存、CPU、磁盘等)
stop 关闭正在运行的容器
tag 修改镜像tag
top 显示容器中正在运行的进程(相当于容器内执行 ps -ef 命令)
unpause 恢复暂停的容器
update 更新容器的硬件资源限制(内存、CPU等)
version 显示docker客户端和服务端版本信息
wait 阻塞当前命令直到对应的容器被关闭, 容器关闭后打印结束代码
daemon 这个子命令已过期, 将在Docker 17.12之后的版本中移出, 直接使用dockerd

用于管理的子命令列表

选项 说明
container 管理容器
image 管理镜像
network 管理容器网络(默认为bridge、host、none三个网络配置)
plugin 管理插件
system 管理系统资源。其中, docker system prune 命令用于清理没有使用的镜像, 容器, 数据卷以及网络
volume 管理数据卷
swarm 管理Swarm模式
service 管理Swarm模式下的服务
node 管理Swarm模式下的docker集群中的节点
secret 管理Swarm模式下的敏感数据
stack Swarm模式下利用compose-file管理服务

说明

其中 container 、image 、system 一般用前面的简化指令即可。Swarm 模式用来管理docker集群, 它将一群Docker宿主机变成一个单一的虚拟的主机, 实现对多台物理机的集群管理。



转载请注明:清风亦平凡 » Docker 常用指令详解

喜欢 (0)or分享 (0)
支付宝扫码打赏 支付宝扫码打赏 微信打赏 微信打赏
头像
发表我的评论
取消评论

CAPTCHA Image
Reload Image
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址