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基本命令的主要内容,如果未能解决你的问题,请参考以下文章

Docker架构:安装与基本命令

linux_docker入门

docker之入门——安装及基本命令

Docker——Docker常用命令+部署一些基本服务(NginxTomcatelasticsearch)

Docker 常用基本命令

Docker 常用基本命令