docker操作常用命令
1,帮助类命令
docker version 查看软件版本(缩略信息:docker -v)
docker info 运行时的信息
docker help 查看帮助信息
查询容器id:docker ps -a
2,Docker镜像类命令
docker images 查看本地镜像
docker search 在仓库中搜索镜像
从公共镜像仓库搜索镜像:https://hub.docker.com/search?q=nginx&type=image
docker pull 从仓库中拉取镜像
docker rmi 删除本地镜像
例:docker images -a
docker search tomcat
docker search --limit 5 tomcat #显示前5条
docker rmi hello-world --force
docker rmi -f hello-world redis #同时删除多个镜像
docker pull redis
等同于:docker pull redis:latest
▶补充:docker镜像标识
•镜像名
•版本号 #不加版本号默认获取最新版本,即:latest.
例:docker pull centos:7
★docker run 中的privileged参数
使用该参数使得container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器。
例:
docker run -it --privileged centos:latest bash
------------------
•子命令:docker image --help
Usage: docker image COMMAND
※◆以下为新命令,取代之前的命令:
docker image ls 列出镜像
docker image build 构建镜像来自Dockerfile
docker image history 查看镜像历史
docker image inspect 显示一个或多个镜像详细信息
docker image pull 从镜像仓库拉取镜像
docker image push 推送一个镜像到镜像仓库
docker image rm 移除一个或多个镜像
docker image prune 移除未使用的镜像。没有被标记或被任何容器引用的。
docker image tag 创建一个引用源镜像标记目标镜像
docker image export 导出容器文件系统到tar归档文件
docker image import 导入容器文件系统tar归档文件创建镜像
docker image save 保存一个或多个镜像到一个tar归档文件
docker image load 加载镜像来自tar归档或标准输入
例:
docker image history nginx
docker image pull redis
docker image rm redis #删除镜像
导出镜像,供其它机器使用。
docker image save redis > redis.tar
导入镜像方法:docker image load < redis.tar
------------------
3,Docker 容器类命令
docker run 创建并启动容器
docker ps 查询当前所有正在运行的容器
exit 停止容器并退出
ctrl + p +q 退出终端 不停止容器
docker attach 连接到正在运行的容器
docker start 启动容器
docker restart 重启容器
docker stop 停止容器(先关闭资源)并退出
docker kill 强制退出容器(杀进程式)
docker rm 删除已经停止的容器
docker logs 查看日志
docker cp 复制容器中的文件
docker exec 执行容器中的命令
docker inspect 获取容器/镜像的元数据。
●docker run:创建一个新容器并运行一个命令。
docker run [options] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="xxxxxx": 为容器指定一个名称;
-P: 映射随机端口;
-p: 映射指定端口
例1:docker run -it -P tomcat #运行tomcat,-P从主机随机分配一个端口,映射到tomcat的默认端口8080.
#若此处不指定-P,则容器的80端口不会映射到宿主机,将只能通过容器的IP地址访问容器的tomcat服务器。
•查看随机分配的端口:docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d11ae2cf35a0 tomcat "catalina.sh run" 12 seconds ago Up 11 seconds 0.0.0.0:32768->8080/tcp zealous_kapitsa
例2:docker run -it -p 8888:8080 tomcat #绑定固定的端口8888映射。
docker run -it --name="mytom"-p 8888:8080 tomcat #--name 起名字
例3:docker run -it --name 容器别名 镜像名
●docker ps:列出容器
docker ps [OPTIONS]
Options:
-a, --all 显示所有容器,包括未运行的。
-f, --filter filter 根据条件过滤显示的内容。
--format string 指定返回值的模板文件。
-n, --last int 显示最后创建的n个容器。
-l, --latest 显示最近创建的容器。
--no-trunc 不截断输出。
-q, --quiet 静默模式,只显示容器编号。
-s, --size 显示总的文件大小。
●docker attach:连接正在运行中的容器
docker attach [OPTIONS] CONTAINER
Attach local standard input, output, and error streams to a running container
Options:
--detach-keys string 重写用于分离容器的键序列
--no-stdin 不要附加标准输入
--sig-proxy 将所有接收到的信号代理给进程 (default true)
例:docker attach 容器ID
●docker start:启动一个或多个已经被停止的容器。
docker stop:停止一个运行中的容器。
docker restart:重启容器
例:docker start 容器ID
删除所有容器方法: docker rm -f $(docker ps -aq)
●docker logs:获取容器的日志。
docker logs [OPTIONS] CONTAINER
Options:
--details Show extra details provided to logs
-f, --follow 跟踪日志输出。
--since string 显示某个开始时间的所有日志。
--tail string 仅列出最新n条容器日志。
-t, --timestamps 显示时间戳。
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
●docker inspect:获取容器/镜像的元数据。
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Options:
-f, --format string 指定返回值的模板文件。
-s, --size 显示容器的文件大小。
--type string 为指定类型返回JSON格式。
●docker exec:在运行的容器中执行命令。
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Options:
-d, --detach 分离模式,在后台运行命令。
--detach-keys string Override the key sequence for detaching a
container
-e, --env list Set environment variables
-i, --interactive 即使没有附加,也保持标准输入打开。
--privileged Give extended privileges to the command
-t, --tty 分配一个伪终端。
-u, --user string Username or UID (format:
<name|uid>[:<group|gid>])
-w, --workdir string Working directory inside the container
例:docker exec -it 容器id bash
●docker cp:用于容器与主机之间的数据拷贝
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Options:
-a, --archive Archive mode (copy all uid/gid information)
-L, --follow-link 保持源目标中的链接。
例docker cp 容器ID:/test.txt /
◆常用例
例1:docker inspect 容器id
其中:MergedDir为容器中文件系统的存放路径。
"GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/703218d7b6280dce74d3213ba4a988a9168b18af6b2a781426155184cd95ea12-init/diff :/var/lib/docker/overlay2/759085ea664a164b1ddd41d3c5aa94ea8b0b16215754cb30505b72cb41608176/diff:/var/lib/docker/overlay2/38d8796 c2f0a2b5f0a4cc8bf9b8179e78ed17df7bfb7f680cbc17e8bad8fbedf/diff:/var/lib/docker/overlay2/ed3d37662db2bd6cdb336b1a6a0fa28aaaac4dfe 15f41adaf06c0648083a8faa/diff", "MergedDir": "/var/lib/docker/overlay2/703218d7b6280dce74d3213ba4a988a9168b18af6b2a781426155184cd95ea12/merged", "UpperDir": "/var/lib/docker/overlay2/703218d7b6280dce74d3213ba4a988a9168b18af6b2a781426155184cd95ea12/diff", "WorkDir": "/var/lib/docker/overlay2/703218d7b6280dce74d3213ba4a988a9168b18af6b2a781426155184cd95ea12/work" }, "Name": "overlay2" }
执行:
ls /var/lib/docker/overlay2/703218d7b6280dce74d3213ba4a988a9168b18af6b2a781426155184cd95ea12/merged
显示:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
与在进入容器的bash命令行后,执行ls,显示的结果相同。