Docker基础知识
文章目录
- Docker
Docker
一次构建,处处运行,类似于JVM
虚拟机是软件+硬件(需要Hypervisors实现硬件资源虚拟化):
- 资源占用大
- 启动慢(虚拟机是分钟级,Docker是秒级)
- 冗余步骤多
sha256的哈希码
:tag 表示版本标签
开发/运维(DevOps)
docker采用分层文件结构UnionFS(联合文件系统),因为存在镜像依赖,方便后期共享资源,数据持久化和容器继承
dockerfile是用来构建Docker镜像的构建文件,由一系列命令和参数构成的脚本,拥有自身的一套保留字指令
FORM # 指出当前镜像基于什么,例如scratch就是docker中所有镜像的Base镜像(父镜像)
MAINTAINER # 作者信息
RUN # 构建镜像过程中所需要运行的命令
EXPOSE # 指定容器对外暴露出的端口号
WORKDIR # 默认登录后的操作目录(落脚点),pwd显示的目录地址
ENV # 用来设置环境变量
COPY # 拷贝文件
ADD # 拷贝+处理并解压缩宿主机中的url或tar包
VOLUME # 指定容器数据卷
CMD # 指定容器启动时要运行的命令,可以有多个,但只有最后一个生效,会被docker run之后的参数替换
ENTRYPOINT # 指定容器启动时要运行的命令,docker run之后的参数追加
ONBUILD # 类似于触发器,父镜像被子镜像继承后触发相应动作
- 编写dockerfile后重新构建生成自定义的镜像命令
docker build -f /dockerfile地址 -t tylt6688/xxx:1.0 .
- 下载镜像
docker pull xxx
- 运行当前名称的镜像,本地优先
docker run
args --name="xxx" 为容器指定别名
-it 以交互模式运行容器并j分配一个伪输入终端
-d 以守护进程方式后台运行容器
-p 8888:8080 指定(外部:内部)端口映射
-P 端口随机分配,可使用ps命令查看具体外部端口
-v /宿主机绝对地址:/容器内相对地址
- 查看镜像生成的容器以及信息
docker ps
args -a
-n 3 查看最近几个
- 验证docker版本号
docker version
- 安装docker当前信息
docker info
- docker帮助命令
docker --help
- 列出本地镜像
docker images
args -a
-q 显示镜像id
- 查询某个镜像
docker search xxx
- 点赞数超过30的镜像
docker search -s 30 xxx
- 删除镜像,删除多个镜像中间加空格
docker rmi xxx
args -f 强制删除
- 启动容器
docker start xxx
- 重启容器
docker restart xxx
- 停止容器
docker stop xxx
- 强制关闭容器
docker kill xxx
- 删除已停止的容器
docker rm xxx
- 进入指定容器命令行
docker exec -it xxx /bin/bash
- 对当前容器修改后重新打包镜像
docker commit -m="备注内容" -a="作者" containerid tylt6688/container:1.0
- 以 Json 串的形式描述整个容器
docker inspect
- 进入容器内部
docker attach xxx
- 查看镜像构建历史
docker history xxx
- 针对某个容器执行某些命令
docker exec xxx java -version