docker常用命令总结
时间:2020-05-29
本文章向大家介绍docker常用命令总结,主要包括docker常用命令总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
docker常用命令总结
docker run
-d, --detach=false # 后台运行容器,并返回容器ID; -i, --interactive=false # 以交互模式运行容器,通常与 -t 同时使用; -t, --tty=false # 为容器重新分配一个伪输入终端,通常与 -i 同时使用; -u, --user="" # 指定容器的用户 -a, --attach=[] # 登录容器(必须是以docker run -d启动的容器) -w, --workdir="" # 指定容器的工作目录 -c, --cpu-shares=0 # 设置容器CPU权重,在CPU共享场景使用 -e, --env=[] # 指定环境变量,容器中可以使用该环境变量 -m, --memory="" # 指定容器的内存上限 -P, --publish-all=false # 指定容器暴露的端口 -p, --publish=[] # 指定容器暴露的端口 -h, --hostname="" # 指定容器的主机名 -v, --volume=[] # 给容器挂载存储卷,挂载到容器的某个目录 --volumes-from=[] # 给容器挂载其他容器上的卷,挂载到容器的某个目录 --cap-add=[] # 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities --cap-drop=[] # 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities --cidfile="" # 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 --cpuset="" # 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU --device=[] # 添加主机设备给容器,相当于设备直通 --dns=[] # 指定容器的dns服务器 --dns-search=[] # 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件 --entrypoint="" # 覆盖image的入口点 --env-file=[] # 指定环境变量文件,文件格式为每行一个环境变量 --expose=[] # 指定容器暴露的端口,即修改镜像的暴露端口 --link=[] # 指定容器间的关联,使用其他容器的IP、env等信息 --lxc-conf=[] # 指定容器的配置文件,只有在指定--exec-driver=lxc时使用 --name="" # 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 --net="bridge" # 容器网络设置: bridge # 使用docker daemon指定的网桥 host # 容器使用主机的网络 container:NAME_or_ID > # 使用其他容器的网路,共享IP和PORT等网络资源 none # 容器使用自己的网络(类似--net=bridge),但是不进行配置 --privileged=false # 指定容器是否为特权容器,特权容器拥有所有的capabilities --restart="no" # 指定容器停止后的重启策略: no # 容器退出时不重启 on-failure # 容器故障退出(返回值非零)时重启 always # 容器退出时总是重启 --rm=false # 指定容器停止后自动删除容器(不支持以docker run -d启动的容器) --sig-proxy=true # 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
示例
使用docker镜像tomcat:latest以后台模式启动一个容器,并将容器命名为mytomcat docker run -tid --name mytomcat tomcat:latest 使用镜像tomcat:latest以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口 docker run -tid --name mytomcat -p 8080:8080 tomcat:latest 使用镜像tomcat:latest以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口,主机的目录 /home 映射到容器的 /home 容器暴露80端口,并指定宿主机80端口与其通信(之前是宿主机端口,之后是容器需暴露的端口) docker run -d --name=ubuntu_server -p 80:80 ubuntu:latest 指定容器内目录与宿主机目录共享(之前是宿主机文件夹,之后是容器需共享的文件夹), docker run -d --name=ubuntu_server -v /etc/www:/var/www ubuntu:latest 指定bridge网桥 docker run -it --net=my_bridge nginx
容器操作
docker create # 创建一个容器但是不启动它 docker run # 创建并启动一个容器 docker stop # 停止容器运行,发送信号 SIGTERM docker kill # 强制终止一个容器 docker start # 启动一个停止状态的容器 docker restart # 重启一个容器 docker rmi # 删除一个容器 docker rm $(docker ps -a -q) docker kill # 发送信号给容器,默认 SIGKILL docker attach # 连接 ( 进入 ) 到一个正在运行的容器 docker wait # 阻塞到一个容器,直到容器停止运行 docker --restart=always # 容器关闭之后自动启动
获取容器信息
docker ps # 显示状态为运行( Up )的容器 docker ps -a # 显示所有容器 , 包括运行中( Up )的和退出的 (Exited) docker inspect # 深入容器内部获取容器所有信息 docker logs -f # 查看容器的日志 (stdout/stderr) (-f 用于实时输出 ) docker events # 得到 docker 服务器的实时的事件 docker port # 显示容器的端口映射 docker top # 显示容器的进程信息 docker diff # 显示容器文件系统的前后变化
导出容器
docker cp # 从容器里向外拷贝文件或目录 docker export containe_id >export.tar # 将容器整个文件系统导出为一个 tar 包,不带 layers 、 tag 等信息 docker export container_id >export.tar # 导出容器保存到本地并命名为 export.tar cat export.tar | docker import - imported:container # 导入本地 tar 包作为一个镜像 docker import url res:tag # 导入网络的容器作为一个镜像
镜像操作
docker images # 显示本地所有的镜像列表 docker import # 从一个 tar 包创建一个镜像,往往和 export 结合使用 docker build # 使用 Dockerfile 创建镜像(推荐) docker commit # 从容器创建镜像 docker rmi # 删除一个镜像 docker load # 从一个 tar 包创建一个镜像,和 save 配合使用 docker save # 将一个镜像保存为一个 tar 包,带 layers 和 tag 信息 docker history # 显示生成一个镜像的历史命令 docker tag # 为镜像起一个别名
镜像仓库 (registry) 操作
docker login # 登录到一个 registry docker search # 从 registry 仓库搜索镜像 docker pull # 从仓库下载镜像到本地 docker push # 将一个镜像 push 到 registry 仓库中 # 获取 Container IP 地址( Container 状态必须是 Up ) docker inspect id | grep IPAddress | cut -d '"' -f 4 # 获取端口映射 docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' id # 获取环境变量 docker exec container_id env # 杀掉所有正在运行的容器 docker kill $(docker ps -q) # 删除老的 ( 一周前创建 ) 容器 docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm # 删除已经停止的容器 docker rm `docker ps -a -q` # 删除所有镜像,小心 docker rmi $(docker images -q)
Dockerfile
FROM , 从一个基础镜像构建新的镜像 FROM ubuntu MAINTAINER , 维护者信息 MAINTAINER William <wlj@nicescale.com> ENV , 设置环境变量 ENV TEST 1 RUN , 非交互式运行 shell 命令 RUN apt-get -y update RUN apt-get -y install nginx ADD , 将外部文件拷贝到镜像里 ,src 可以为 url ADD http://nicescale.com/ /data/nicescale.tgz WORKDIR /path/to/workdir, 设置工作目录 WORKDIR /var/www USER , 设置用户 ID USER nginx VULUME <#dir>, 设置 volume VOLUME [‘/data’] EXPOSE , 暴露哪些端口 EXPOSE 80 443 ENTRYPOINT [‘executable’, ‘param1’,’param2’] 执行命令 ENTRYPOINT ["/usr/sbin/nginx"] CMD [“param1”,”param2”] CMD ["start"]
原文地址:https://www.cnblogs.com/Wshile/p/12988720.html
- awk中的变量(r4笔记第93天)
- Spring思维导图,让Spring不再难懂(ioc篇)
- 基于dba_hist_sqlstat查看sql语句的性能历史(r4笔记第92天)
- 思维导图学 Maven
- 浅析Java RTTI 和 反射的概念
- 结合EM快速解决复杂的配置问题(r4笔记第91天)
- 散列算法与散列码
- Linux 日常使用小记.
- SQL优化二(SQL性能调优)
- database replay基础学习(r4笔记第90天)
- Vivotek 摄像头远程栈溢出漏洞分析及利用
- 03.HTML头部/CSS/图像/表格/列表
- 巧用flashback database实现灵活的数据切换(r5笔记第9天)
- 01.HTML教程/简介/基础
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示
- Python 技巧篇-开头注释怎么写最好,开头注释需要包含什么,开头注释的重要性
- 在CentOS8下安装Python3和ansible
- 开发一个属于自己的Spring Boot Starter
- 如何让Tomcat使用APR连接器
- VueJS中使用前端虚拟接口Mock.js
- CentOS7下源码安装MySQL 8.x
- 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
- Jmeter接口压测快速入门
- 超简单!Qt Designer插入图片,styleSheet加入图片,Qt加入背景图片
- 关于领域模型转换的那些事儿
- Windows图标显示异常解决方法。桌面图标异常,开始菜单图标异常,任务栏图标异常。图标缓存位置。
- Python基本语法与数字类型
- Qt Designer设置背景图片、颜色不影响其它组件小技巧,控件层级设置,组件的继承,styleSheet设置样式。
- 搭建高可用的Harbor