- 1. 帮助命令
- 2. 镜像命令
- 参数解释:
- 3.2 docker ps———列出当前所有正在运行的容器
- 3.3 exit/ctrl+P+Q———退出容器
- 3.4 docker start———启动容器
- 3.5 docker restart———重启容器
- 3.6 docker stop———停止容器
- 3.7 docker kill———强制停止容器
- 3.8 docker rm———删除已停止的容器
- 3.9 docker logs———查看容器日志
- 3.10 docker top———查看容器内运行的进程
- 3.11 docker inspect———查看容器内部细节
- 3.12 docker exec/attach———进入正在运行的容器并以命令行交互
- 3.13 docker cp———从容器内拷贝文件到主机上
- 4. 常用命令总结
1. 帮助命令
docker version # 查看docker版本docker info # 查看docker信息docker --help # 查看帮助信息,列出所有命令
2. 镜像命令
2.1 docker images
列出本地主机上的镜像
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,使用 REPOSITORY:TAG 来定义不同的镜像。 如果不指定一个镜像的版本标签,例如只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像(最新版本)
字段说明:
| REPOSITORY | TAG | IMAGE ID | CREATED | VIRTUAL SIZE |
|---|---|---|---|---|
| 表示镜像的仓库源 | 镜像的标签 | 镜像ID | 镜像创建时间 | 镜像大小 |
常用选项:
docker images [OPTIONS]# OPTIONS说明:# -a :列出本地所有的镜像(含中间映像层,可以理解为依赖的其他包)# -q :只显示镜像ID。# --digests :显示镜像的摘要信息# --no-trunc :显示完整的镜像信息
2.2 docker search
去https://hub.docker.com查找(配的阿里云仅仅是用于下载,查找还是从dockerhub查找)
常用选项:
docker search [OPTIONS] 镜像名字# OPTIONS说明:# --no-trunc : 显示完整的镜像描述# -s : 列出star数不小于指定值的镜像。# --automated : 只列出 automated build自动构建类型的镜像;
2.3 docker pull
下载镜像 注意:不写
**:TAG**版本号默认拉最新版
docker pull 镜像名字[:TAG]docker pull tomcat # 等同于docker pull tomcat:latest
2.4 docker rmi
删除镜像
# 删除单个docker rmi -f 镜像ID或者镜像名# 删除多个docker rmi -f 镜像名1:TAG 镜像名2:TAG# 删除全部,$()可以理解为el表达式传参docker rmi -f $(docker images -qa)
2.5 docker build
根据DockerFile,构建镜像
docker build -f docker file路径 -t 命名空间/镜像名 .# 参数解释-f 指明dockerfile路径,如果不使用 -f,默认读取当前路径下的Dockerfile文件-t 指明镜像的命名空间和名称. 代表在当前目录,可以自定义,也可以指定远程URL
2.6 docker commit
提交容器副本使之成为一个新的镜像,可以理解成JAVA中的反射,用对象反射成类
docker commit -m="提交的描述信息" -a="作者" 原容器ID 要创建的目标镜像名:[标签名]
- 案例演示
- 从Hub上下载tomcat镜像到本地并成功运行
- 前台运行

- 后台运行

docker pull tomcatdocker run -it -p 8080:8080 tomcat## 参数说明(参考3.1 docker run)# -p 主机端口:docker容器端口,可以理解成端口映射(打隧道)# -P 随机分配端口# -i 交互# -t 终端
- 故意删除上一步镜像生产tomcat容器的文档
- 也即当前的tomcat运行实例是一个没有文档内容的容器,以它为模板commit一个没有doc的tomcat新镜像jshawn/tomcat ```bash docker commit -a=”jshawn” -m=”mytomcat” 原容器ID 名称空间/名称:tags
参数解释:
-a 作者 -m 描述 容器ID 以哪个容器为模板生成镜像 名称空间 自定义,可以理解为包名 名称 自定义,软件名 tags 自定义,版本号
- 测试,启动新镜像并和原来的对比- 启动jshawn/tomcat,它没有docs- 重新启动原来的tomcat,它有docs<a name="CvAVo"></a>## 2.7 docker push> **推送到远程仓库**> **参考:**[九、本地镜像发布到阿里云](https://www.yuque.com/shawn-ssup1/yn8b6h/ypa3ha)<a name="se6V8"></a>## 2.8 docker history> **列出镜像的变更历史**<a name="VdwMa"></a># 3. 容器命令<a name="xoNzc"></a>## 3.1 docker run------新建并启动容器> run干了什么:> 本地有镜像,以镜像创建一个容器实例运行> 本地没有镜像,先去仓库pull,然后是用pull好的镜像创建一个容器实例运行> > ```bashdocker run [OPTIONS] IMAGE [COMMAND] [ARG...]# OPTIONS说明(常用):有些是一个减号,有些是两个减号:--name="容器新名字": 为容器指定一个名称;--volumes-from:数据容器卷,继承于哪个容器-d: (重要)后台运行容器,并返回容器ID,也即启动守护式容器;-i:(重要)以交互模式运行容器,通常与 -t 同时使用;-t:(重要)为容器重新分配一个伪输入终端,通常与 -i 同时使用;-v:(重要)/宿主机绝对路径目录:/容器内目录 镜像名,参考六、Docker容器数据卷 3.1 命令添加-P: 随机端口映射;-p: 指定端口映射,有以下四种格式ip:hostPort:containerPortip::containerPort(重要)hostPort:containerPortcontainerPort# -i 参数 启动交互式容器# 使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。docker run -it centos /bin/bash# -d 参数 启动守护式容器#使用镜像centos:latest以后台模式启动一个容器docker run -d centos# 问题:然后docker ps -a 进行查看, 会发现容器已经退出# 很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.# 容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。# 这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。# 例如 service nginx start# 但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事# 可做了。所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
3.2 docker ps———列出当前所有正在运行的容器
字段说明:
| CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
|---|---|---|---|---|---|---|
| 容器ID | 镜像ID | 命令 | 创建时间 | 状态 up:正在运行 Exited:停止并退出 |
端口 | 容器别名 |
docker ps [OPTIONS]# OPTIONS说明(常用):-a :列出当前所有正在运行的容器+历史上运行过的-l :显示最近1次创建的容器。-n :显示最近n个创建的容器。-q :静默模式,只显示容器编号。--no-trunc :不截断输出。
3.3 exit/ctrl+P+Q———退出容器
exit # 容器停止退出ctrl+P+Q # 容器不停止退出
3.4 docker start———启动容器
docker start 容器ID或者容器名
3.5 docker restart———重启容器
docker restart 容器ID或者容器名
3.6 docker stop———停止容器
docker stop 容器ID或者容器名
3.7 docker kill———强制停止容器
docker kill 容器ID或者容器名
3.8 docker rm———删除已停止的容器
# 删除一个容器docker rm 容器ID# 一次性删除多个容器docker rm -f $(docker ps -a -q)docker ps -a -q | xargs docker rm
3.9 docker logs———查看容器日志
docker logs -f -t --tail 容器ID-t 是加入时间戳-f 跟随最新的日志打印--tail 数字 显示最后多少条
3.10 docker top———查看容器内运行的进程
docker top 容器ID
3.11 docker inspect———查看容器内部细节
docker inspect 容器ID
3.12 docker exec/attach———进入正在运行的容器并以命令行交互
# (推荐)进入正在运行的容器并以命令行交互docker exec -it 容器ID /bin/bash# 在容器外执行命令,不进入容器docker exec -it 容器ID COMMAND [ARGS]# 重新进入正在运行的容器并以命令行交互docker attach 容器ID# 两者的区别:attach 直接进入容器启动命令的终端,不会启动新的进程exec 是在容器中打开新的终端,并且可以启动新的进程,(重要)并且可以在容器外执行命令(类似hadoop命令)
3.13 docker cp———从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
4. 常用命令总结
attach Attach to a running container # 当前 shell 下 attach 连接指定运行镜像build Build an image from a Dockerfile # 通过 Dockerfile 定制镜像commit Create a new image from a container changes # 提交当前容器为新的镜像cp Copy files/folders from the containers filesystem to the host path #从容器中拷贝指定文件或者目录到宿主机中create Create a new container # 创建一个新的容器,同 run,但不启动容器diff Inspect changes on a container's filesystem # 查看 docker 容器变化events Get real time events from the server # 从 docker 服务获取容器实时事件exec Run a command in an existing container # 在已存在的容器上运行命令export Stream the contents of a container as a tar archive # 导出容器的内容流作为一个 tar 归档文件[对应 import ]history Show the history of an image # 展示一个镜像形成历史images List images # 列出系统当前镜像import Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]info Display system-wide information # 显示系统相关信息inspect Return low-level information on a container # 查看容器详细信息kill Kill a running container # kill 指定 docker 容器load Load an image from a tar archive # 从一个 tar 包中加载一个镜像[对应 save]login Register or Login to the docker registry server # 注册或者登陆一个 docker 源服务器logout Log out from a Docker registry server # 从当前 Docker registry 退出logs Fetch the logs of a container # 输出当前容器日志信息port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT # 查看映射端口对应的容器内部源端口pause Pause all processes within a container # 暂停容器ps List containers # 列出容器列表pull Pull an image or a repository from the docker registry server # 从docker镜像源服务器拉取指定镜像或者库镜像push Push an image or a repository to the docker registry server # 推送指定镜像或者库镜像至docker源服务器restart Restart a running container # 重启运行的容器rm Remove one or more containers # 移除一个或者多个容器rmi Remove one or more images # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]run Run a command in a new container # 创建一个新的容器并运行一个命令save Save an image to a tar archive # 保存一个镜像为一个 tar 包[对应 load]search Search for an image on the Docker Hub # 在 docker hub 中搜索镜像start Start a stopped containers # 启动容器stop Stop a running containers # 停止容器tag Tag an image into a repository # 给源中镜像打标签top Lookup the running processes of a container # 查看容器中运行的进程信息unpause Unpause a paused container # 取消暂停容器version Show the docker version information # 查看 docker 版本号wait Block until a container stops, then print its exit code # 截取容器停止时的退出状态值
字段说明:
常用选项:
字段说明:

