docker_命令总结
docker -v /hostDir:/containerDir
/hostDir为宿主机的目录
/containerDir为容器内的目录
-v 实现两个目录的挂在,即容器内数据持久化到本机
docker ps
参数:
-a: 显示所有容器(包括没有在运行的容器)
-q: 仅显示容器ID
查看正在运行的容器
docker images 或 docker image ls
查看本地有哪些镜像
docker rmi imageID或镜像名
删除镜像, 加-f
强制删除镜像(有生成容器的镜像需要用-f
)
docker container ls -a
显示所有容器(包括没有在运行的)
docker rm containerID
删除容器
docker run imageID或镜像名
执行镜像生成运行的容器
docker search -f=stars=1000 java
-f
使用过滤器
--limit 2
最多显示2条
寻找叫java的镜像,同时stars数超过1000的
docker run -d -p 91:80 nginx
表示 后台运行Nginx 映射宿主机91端口到容器的80端口
常用参数选项:
-d => 后台运行
-P => 随机端口映射
-p => 指定端口映射 例子:-p 91:80
,前为宿主机端口,后为容器端口
进入容器
docker attach conatainerID
启动容器(在新容器中执行命令):
docker run IMAGE [COMMAND][ARG...]
交互方式启动新容器:
docker run -i -t IMAGE /bin/bash
-i 表示 --interactive=true 默认是false
-t 表示 --tty=true ,即为容器分配一个伪tty终端 默认为false
查看容器
docker ps [-a] [-l]
-a 表示列出所有容器
-l列出最新创建出来的容器
查看容器详情
docker inspect container-id
自定义容器名:
docker run --name=自定义名 -i -t IMAGE /bin/bash
重新启动已经停止的容器
docker start [-i] 容器名
-i 交互式打开
删除已停止的容器
docker rm 容器名/container-id
守护式容器
1.即能够长期运行
2.没有交互式会话
3.适合运行应用程序和服务
以守护形式运行容器
方法1:
docker run -i -t IMAGE /bin/bash
Ctrl+P Ctrl+Q
方法2:
docker run -d IMAGE [COMMAND][ARG...]
-d 表示后台运行;COMMAND 执行完容器也会停止
查看容器日志:
docker logs [-f][-t][--tail] 容器名
-f 表示--follows=true 表示追踪并返回结果 默认false
-t 表示--timestamps=true 把时间打印出来 默认false
--tail 表示返回指定数量的结尾日志,不指定则返回所有日志
查看容器内的进程
docker top 容器名/container-id
在运行的容器内启动新进程
docker exec [-d][-i][-t] 容器名/Container-id [COMMAND][ARG...]
停止守护式容器:
docker stop 容器名/container-id
docker kill 容器名/container-id
stop 会正常停止;kill会直接停止容器
Ctrl+P 组合 Ctrl+Q
将交互式容器放到后台运行
docker run -d
以后台运行的方式运行一个容器(后面的命令执行完毕 则容器也会停止)
查询本机docker镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
openresty/openresty latest 3c9e8cc37fa4 3 days ago 84.8MB
列出本机包含的镜像
docker images [OPTIONS] [REPOSITORY]
OPTIONS说明:
-a 列出本地所有的镜像
-f 显示满足条件的镜像
-q 只显示镜像ID
查看镜像的详细信息
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
OPTIONS说明
-f 指定返回值的模版文件
-s 显示总的文件大小
删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
-f 强制删除
--no-prune :不移除该镜像的过程镜像,默认移除
查找镜像
docker search [OPTION] TERM
--automated 只列出automated build类型的镜像
--no-trunc 显示完整的镜像描述
-s 列出收藏数不小于指定值的镜像
使用search命令一次最多返回25个结果
拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS说明:
-a 拉取所有tagged镜像
--disable-content-trust 忽略镜像的校验,默认开启
如何配置国内镜像仓库
1. 打开/etc/default/docker
2. 添加 DOCKER_OPTS = "--registry-mirror=http://MIRROR-Addr"
推送镜像
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust 忽略镜像校验,默认开启
构建镜像
1. 保存对容器的修改,并在此使用
2. 自定义镜像的呢你
3. 以软件的形式打包,并分发服务及其运行环境
通过容器构建镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a 提交的镜像作者名字
-c 使用Dockerfile指令来创建镜像
-m 提交的说明文字信息
-p 在commit时,将容器暂停
通过Dockerfile 文件构建镜像
docker build
一个简单的 Dockerfile 样例
#First Dockerfile
FROM unbuntu:14.04
MAINTAINER grady "xxx@xxx.com"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
使用docker build 和Dockerfile 构建镜像
docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
-f :指定要使用的Dockerfile路径;
-t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签
docker 守护进程的管理
// 守护进程启动
service docker start
// 守护进程停止
service docker stop
// 守护进程重启
service docker restart
docker 启动配置文件
/etc/default/docker
Dockerfile 指令
EXPOSE
暴露端口,即使在Dockerfile中写了,也需要在创建容器的指令中指定端口(这样设计时出于安全考虑)
RUN
在镜像构建时运行的命令
CMD
CMD [ "executable", "param1", "param2" ] (exec 模式)
CMD command param1 param (shell 模式)
//参数模式
CMD ["param1", "param2"] (作为ENTRYPOINT指令的默认参数)
在容器运行时执行的命令
如果docker run 有指定运行的命令,则CMD命令会被覆盖
ENTRYPOINT
不会被docker run所指定的命令覆盖
如果想覆盖,可使用docker run --entrypoint覆盖
ENTRYPOINT [ "executable", "param1", "param2" ] (exec 模式)
ENTRYPOINT command param1 param2 (shell 模式)
ADD
ADD 原路径 目标路径
将本宿主机目录中的文件和目录拷贝到镜像中
目标路径必须写镜像中的绝对路径
ADD 与COPY 的区别
1. ADD 包含tar的解压缩功能
2. 如果是单纯的复制文件,Docker推荐使用COPY
COPY
如果是单纯的复制文件
VOLUME
提供数据持久化,共享数据的功能
VOLUME["/data"]
WORKDIR
创建新容器时设置工作目录
WORKDIR /path/to/workdir
ENV
设置环境变量
ENV key value
ENV key=value
USER
USER xxx
以哪种用户身份运行,例如*USER nginx
如果不使用USER指令,默认使用root
ONBUILD
镜像触发器
当一个镜像被其他镜像作为基础镜像时执行
例子:
ONBUILD COPY index.html /usr/share/nginx/html/
//当作为父镜像被参与构建新镜像时,会执行上述回调指令
Dockerfile 构建过程
1. 从基础镜像中运行一个容器
2. 执行一条指令,对容器作出修改
3. 执行类似docker commit 的操作,提交一个新的镜像层
4. 再基于刚提交的镜像运行一个新容器
5. 执行Dockerfile中的下一条指令,直至所有指令执行完毕
docker_命令总结的更多相关文章
- Cmder--Windows下命令行利器
cmder cmder是一个增强型命令行工具,不仅可以使用windows下的所有命令,更爽的是可以使用linux的命令,shell命令. 安装包 安装包链接 下载后,直接解压即用. 修改命令提示符λ为 ...
- 【每日一linux命令4】常用参数:
下面所列的是常见的参数(选项)义: --help,-h 显示帮助信息 --version,-V ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- SQLServer执行命令出现“目录无效的提示”
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 一般都是清理垃圾清理过头了,把不该删的目录删了 网上说法: 问题描述: 1.s ...
- SQLServer文件收缩-图形化+命令
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 收缩前 图形化演示: 不仅仅可以收缩日记文件,数据库文件也是可以收缩的,只不过日记收缩比 ...
- 让 windows 下的命令行程序 cmd.exe 用起来更顺手
在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制 ...
- [版本控制之道] Git 常用的命令总结(欢迎收藏备用)
坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...
- git 命令
切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm ...
随机推荐
- NC53681 「土」巨石滚滚
NC53681 「土」巨石滚滚 题目 题目描述 帕秋莉掌握了一种土属性魔法 她使用这种魔法建造了一个大型的土球,并让其一路向下去冲撞障碍 土球有一个稳定性 \(x\) ,如果 \(x < 0\) ...
- NC14247 Xorto
NC14247 Xorto 题目 题目描述 给定一个长度为 \(n\) 的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为 \(0\) . 输入描述 第一行一个数 \(n\) 表示 ...
- 基于POM---UI测试框架
为什么会出现这个半自动化UI测试框架 我进入公司的前一个月从事的手工测试,为了提高自己的测试效率在工作时间之外写了一个半自动化的UI测试(害怕手工测试做久了,忘记自己还学过软件开发), 为什么我把它叫 ...
- Linux关闭avahi-daemon服务
avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程. 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范. ...
- chrome请求cgi遇到net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
测试一个web demo的时候,通过chrome请求板子上的web server的cgi时总是提示:net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 搜遍整个 ...
- PoweJob高级特性-MapReduce完整示例
由于网上搜索 PowerJob MapReduce 都是设计原理,demo也展示个空壳子,没有演示Map到Reduce结果怎么传递,对于没有MR开发经验的人来说并没有什么帮助,所以这里写了一个有完整计 ...
- Effective C++阅读笔记 较详细 复杂条款带样例
一.让自己习惯C++ 条款01:视C++为一个语言联邦 C++可视为: C:以C为基础. 面向对象的C++:添加面向对象特性. 模板C++:泛型编程概念,使用模板. STL:使用STL的容器.迭代器. ...
- Java开发学习(十)----基于注解开发定义bean 已完成
一.环境准备 先来准备下环境: 创建一个Maven项目 pom.xml添加Spring的依赖 <dependencies> <dependency> < ...
- 记一次 .NET 某电厂Web系统 内存泄漏分析
一:背景 1. 讲故事 前段时间有位朋友找到我,说他的程序内存占用比较大,寻求如何解决,截图就不发了,分析下来我感觉除了程序本身的问题之外,.NET5 在内存管理方面做的也不够好,所以有必要给大家分享 ...
- MongoDB慢查询与索引
MongoDB慢查询 慢查询分析 开启内置的慢查询分析器 db.setProfilingLevel(n,m),n的取值可选0,1,2 0:表示不记录 1:表示记录慢速操作,如果值为1,m需要传慢查询的 ...