一次构建,处处运行,类似于JVM
虚拟机是软件+硬件(需要Hypervisors实现硬件资源虚拟化):
sha256的哈希码
:tag 表示版本标签
开发/运维(DevOps)
docker采用分层文件结构UnionFS(联合文件系统),因为存在镜像依赖,方便后期共享资源,数据持久化和容器继承
dockerfile是用来构建Docker镜像的构建文件,由一系列命令和参数构成的脚本,拥有自身的一套保留字指令
FORM # 指出当前镜像基于什么,例如scratch就是docker中所有镜像的Base镜像(父镜像)
- 1
- 2
MAINTAINER # 作者信息
- 1
- 2
RUN # 构建镜像过程中所需要运行的命令
- 1
- 2
EXPOSE # 指定容器对外暴露出的端口号
- 1
- 2
WORKDIR # 默认登录后的操作目录(落脚点),pwd显示的目录地址
- 1
- 2
ENV # 用来设置环境变量
- 1
- 2
COPY # 拷贝文件
- 1
- 2
ADD # 拷贝+处理并解压缩宿主机中的url或tar包
- 1
- 2
VOLUME # 指定容器数据卷
- 1
- 2
CMD # 指定容器启动时要运行的命令,可以有多个,但只有最后一个生效,会被docker run之后的参数替换
- 1
- 2
ENTRYPOINT # 指定容器启动时要运行的命令,docker run之后的参数追加
- 1
- 2
ONBUILD # 类似于触发器,父镜像被子镜像继承后触发相应动作
- 1
- 2
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 version
docker info
docker --help
docker images
args -a
-q 显示镜像id
docker search xxx
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
docker inspect
docker attach xxx
docker history xxx
docker exec xxx java -version