Docker入门--命令篇
基础知识
镜像:类似于用于创建虚拟机的
.iso
文件
容器:虚拟机
Dockerfile:c程序源文件
xxx.c
容器数据卷:共享文件夹
基本命令
查看本地镜像:
docker images [options]
-a :列出仓库中所有镜像
-q :只显示所有镜像的id号
--digests :显示摘要信息
示例:--digest --no-trunc :显示完整信息
在网络仓库搜索镜像:
docker search [options] xx镜像名字
-filter=stars=30 :点赞数超过30
--no-trunc :不省略信息
--automated :只列出automated build类型的镜像
下载某个镜像到本地:
docker pull xx镜像:[版本号] (也可以写镜像ID)
末尾没加版本号 :xxx
默认为最新版
删除本地镜像:
docker rmi [option] xx镜像名(或 id):版本号 默认最新版
-f 镜像1:版本号 镜像2:版本号 :强制删除示例:-f ${docker images -qa} 删除所有
容器命令( 先有镜像再有容器 )
新建并启动容器:
docker run [option] 镜像名(或 id) [command] [args]
[command] [args] : 需要容器执行的命令和命令的参数 一般为: /bin/bash
[option]:参数
-name :为容器起一个别称
-d :后台启动,返回容器id,不进入容器
-i :以交互模式运行容器 通常与 -t 同时使用
-t :为容器重新分配一个伪输入终端
-P :随机端口映射
-p :指定端口映射 有以下几种形式
- hostip:hostPort:containerPort
- hostip::containerPort
- hostPort:containerPort
- containerPort
示例: docker run --name myKali -p 127.0.0.1:8888:8080 kali:19.4 /bin/bash
查看所有正在运行的容器:
docker ps [options] 默认显示正在运行的
-a :正在运行以及历史运行过的
-l :显示最近创建的容器
-n 3 :显示最近3个创建的容器
-q :静默模式,只显示容纳编号
--no-trunc :不截断输出
退出容器(在容器内部):
:关闭容器
exit
:离开容器,但不关闭
ctrl + P + Q
启动容器(之前关闭的):
docker start -i 容器ID
重启容器:
docker restart -i 容器ID
停止容器:
docker stop 容器ID
强制停止容器:
docker kill 容器ID
删除已停止的容器:
docker rm 容器ID
查看容器日志:
docker logs -f -t --tail num 容器ID (-t 显示时间戳 -f 跟紧最新的日志并实时显示打印 --tail 数字 显示最后多少条)
查看容器内运行的进程:
docker top 容器ID
查看容器内部细节:
docker inspect 容器ID
进入正在运行的容器并以命令行交互:
:直接进入容器
docker attach 容器ID
:在外面执行容器内部的命令,得到结果,可以进去容器,也可以不
docker exec -it 容器ID ls -l /temp
从容器内拷贝数据到宿主机内::
docker cp 容器ID:容器内路径 目的主机的路径
提交新容器至本地仓库:
docker commit -m=描述信息 -a=作者 容器ID 要创建的目标镜像名:[版本号]
提交到网络仓库:
docker push [OPTIONS] NAME[:TAG]
--disable-content-trust 忽略镜像的校验,默认开启
容器数据卷:
方法一:
docker run -it -v /宿主机绝对路径目录:/容器内目录:权限 镜像名
权限默认为读写
方法二:
- 主机下建立一个 xxx文件夹
- 再在此目录下写一个
文件 Dockerfile.ockfile
-
搭建镜像名为 xx/xxxdocker built -f /xxx/Dockerfile -t xx/xxx
-
docker run -it xx/xxx
数据卷容器:
docker run -it --name docker01 镜像名(或 id)
相当于继承 并且共享数据卷文件
docker run -it --name docker02 --volumes-from docker01 镜像名(或 id)