Docker基本命令
Posted featherwit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker基本命令相关的知识,希望对你有一定的参考价值。
Docker帮助命令
1. 查看Docker版本
[root@centos ~]# docker version
2. 查看Docker的详细信息
[root@centos ~]# docker info
3. 查看帮助命令
[root@centos ~]# docker --help
Docker镜像命令
1. 列出本地主机上的镜像
docker images [OPTIONS]
各个选项说明
1. REPOSITORY: 表示镜像的仓库源
2. TAG : 镜像的版本标签
3. IMAGE ID : 镜像ID
4. CREATED : 镜像创建时间
5. SIZE : 镜像大小
OPTIONS说明:
-a: 列表本地所有的镜像(含中间映像层)
-q: 只显示镜像ID
--digests: 显示镜像的摘要信息
--no-trunc: 显示完整的镜像信息
同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,使用REPOSITORY:TAG来定义不同的镜像。如果不指定一个镜像的版本标签,例如只使用ubuntu,docker将默认使用ubuntu:latest镜像。
2. 在远程仓库中查找镜像
docker search [OPTIONS] 镜像名称 # 目标网站: https://hub.docker.com OPTIONS说明: --no-trunc: 显示完整的镜像描述 -s: 列出收藏数不少于指定值的镜像 --automated: 只列出automated build类型的镜像
3. 从远程仓库中下载镜像
docker pull 镜像名字[:TAG]
docker pull nginx 等价于 docker pull nginx:latest
4. 删除镜像
删除单个: docker rmi 唯一镜像名字或镜像ID[:TAG]
删除多个: docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部: docker rmi if $(docker images -qa)
Docker容器命令
有镜像才能创建容器,这是根本前提!
1. 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明: 有些是一个减号,有些是两个减号
--name="容器新名字": 为容器指定一个名称
-d: 后台运行容器,并返回容器ID,也即启动守护式容器
-i: 以交互模式运行容器,通常与-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-P: 随机端口映射
-p: 指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
2. 列出当前所有正在运行的容器
docker ps [OPTIONS]
OPTIONS说明:
-a: 列出当前所有正在运行的容器+历史上运行过的
-l: 显示最近创建的容器
-n: 显示最近n个创建的容器
-q: 静默模式,只显示容器编号
--no-trunc: 不截断输出
3. 退出容器
1. 容器停止退出 exit 2. 容器不停止退出 ctrl+P+Q
4. 启动容器
docker start 容器ID或者容器名
5. 重启容器
docker restart 容器ID或者容器名称
6. 停止容器
docker stop 容器ID或者容器名
7. 强制停止容器
docker kill 容器ID或容器名称
8. 删除已停止的容器
docker rm 容器ID 一次删除多个容器 docker rm -f $(docker ps -a -q) docker ps -a -q|xargs docker rm
9. 启动守护式容器
docker run -d 容器名
使用容器centos:latest以后台模式启动一个容器
docker run -d centos
问题: 然后docker ps -a 进行查看,会发现容器已经退出
很重要的要说明一点: Docker容器以后台运行,就必须要有一个前台进程
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的
这个是docker的机制问题,比如web容器,以nginx为例,正常情况下,配置启动服务只需要启动响应的service即可。例如service nginx start
但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器后台启动后,会立即自杀因为他觉得他没事可做了
所以,最佳的解决方案是,将要运行的程序以前台进程的形式运行
10. 查看容器的日志
docker logs -f -t --tail 容器ID
-t: 加入时间戳
-f: 跟随最新的日志打印
--tail: 数字 显示最后多少条
11. 查看容器内运行的进程
docker top 容器ID
12. 查看容器内部的细节
docker inspect 容器ID
13. 进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
# 重新进入
docker attach 容器ID
attach: 直接进入容器启动命令的终端,不会启动新的进程
exec: 是在容器中打开新的终端,并且可以启动新的进程
14. 从容器内拷贝文件到主机上
docker cp 容器ID: 容器内路径 目的路径
以上是关于Docker基本命令的主要内容,如果未能解决你的问题,请参考以下文章