Docker
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文件夹
- 再在此目录下写一个
.ockfile
文件 Dockerfile docker built -f /xxx/Dockerfile -t xx/xxx
搭建镜像名为 xx/xxxdocker run -it xx/xxx
数据卷容器:
docker run -it --name docker01 镜像名(或 id)
docker run -it --name docker02 --volumes-from docker01 镜像名(或 id)
相当于继承 并且共享数据卷文件