一:帮助命令
1.docker version(查看docker版本)
2.docker info(查看docker详细信息)
3.docker --help(查看docker命令使用方法)
二、镜像命令
1.列出本地主机上的镜像
docker images [OPTIONS]
[OPTIONS] 说明:
-a:列出本地所有的镜像(含中间映像层)
-q :只显示镜像ID
--digests :显示镜像的摘要信息
--no-trunc :显示完整的镜像信息
2.从docker官方仓库查找某个镜像(https://hub.docker.com)
docker search [OPTIONS] 镜像名字
[OPTIONS] 说明:
--no-trunc : 显示完整的镜像描述
-s : 列出收藏数不小于指定值的镜像
--automated : 只列出 automated build类型的镜像
3.下载镜像
docker pull 镜像名字[:TAG] (不加:TAG则表示下载最新的镜像)
4.删除镜像
(1).删除单个
docker rmi -f 镜像ID 或者 镜像名:TAG
(2).删除多个
docker rmi -f 镜像ID1 镜像ID2 或者 镜像名1:TAG 镜像名2:TAG
(3).删除全部
docker rmi -f $(docker images -qa)
三、容器命令
以centos镜像为例子
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
IMAGE说明:
镜像ID 或者 镜像名:TAG
(1).新建并启动交互式容器
docker run -it centos /bin/bash
(2).新建并启动守护式容器
docker run -d 镜像
# 使用镜像centos:latest以后台模式启动一个容器
docker run -d centos
问题:然后docker ps 进行查看, 会发现容器已经退出,这是因为 Docker容器后台运行,就必须有一个前台进程.如果容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的
解决方式:生成一个前台进程
docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"
2.列出当前所有正在运行的容器
docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
--no-trunc :不截断输出。
3.启动交互式容器后退出容器
(1). 容器停止并退出
exit
ps:特例
当使用docker exec 重新进入容器,此时 输入exit,不会停止容器,只是退出容器
(2).容器只是退出但不停止
ctrl+p+q
4.启动容器
docker start 容器ID或者容器名
5.重启容器
docker restart 容器ID或者容器名
6.停止容器
docker stop 容器ID或者容器名
7.强制停止容器
docker kill 容器ID或者容器名
8.删除容器
(1).删除单个
docker rm -f 容器ID或者容器名
(2).删除多个
docker rm -f 容器ID1 容器ID2 或者 容器名1 容器名2
(3).删除全部
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
9.查看容器日志
docker logs -f -t --tail 容器ID
-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条
10.查看容器内运行的进程
docker top 容器ID
11.查看容器内部细节
docker inspect 容器ID
12.进入正在运行的容器并以命令行交互
(1).docker exec -it 容器ID bashShell
如 重新进入正在运行的centos:
docker exec -it 0796b976658d /bin/bash
ps: docker exec -it 0796b976658d ls -l /temp(此时不会进入容器,但是会在容器内执行ls -l /temp命令
(2).docker attach 容器ID
tips:
上述两个区别
attach 是直接进入容器启动命令的终端,不会启动新的进程(容器是以docker run -it centos /bin/bash形式启动 的时候,可以使用attcah重新进入容器)。
exec 是在容器中打开新的终端,并且可以启动新的进程。
13.docker中宿主机与容器(container)互相拷贝传递文件的方法
(1) 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
(2)从主机内拷贝文件到容器上
docker cp 主机路径 容器ID:容器内路径