查看镜像
docker image ls
拉去镜像
docker pull 名字:版本号
拉去用户的某个仓库下的镜像
docker pull 用户名/仓库/镜像名:版本
启动镜像 -it 表示连接到容器终端
docker container run -it 镜像名:版本 /bin/bash
连接到运行中的容器
docker container exce -it 容器名 /bin/bash
查看运行中的容器
docker container ls
停止容器
docker container stop 容器名或id
获取悬虚镜像
docker image ls --filter dangling=true
删除悬虚镜像
docker image ls prune
删除镜像
docker container rm 容器名
列出所有的容器 -a 表示包括停止的容器
docker container ls -a
启动镜像 -d让容器到后台运行 -p做端口映射将服务器中的8080端口映射到容器中的端口(即springboot项目配置的端口号)端口
docker run -d -p 8080:8085 bootdocker
containerd:用于容器的生命周期管理,删除、启动、停止等
runc:运行容器,又叫OCI层
Daemon:用于接收客户端的指令,指示containerd进行操作
Docker client:客户端
shim:用户containerd与runc进行解耦,1、保持所有的stdin和stdout流是开启状态,从而当containerd重启时,容器不会因为管道的关闭而终止。2、将容器的退出状态反馈给daemon
docker过滤器
语法
docker image ls --filter dangling=true
获取镜像列表并格式化输出
.ID – 镜像ID
.Repository – 镜像存储库名称
.Tag – 镜像tag
.Digest – 镜像digest
.CreatedSince – 从镜像创建到现在过去的时间
.CreatedAt – 镜像创建的时间
.Size – 镜像硬盘占用大小
docker image ls --format "{{.ID}}:{{.Repositry}}"
查找指定仓库(NAME)的镜像,可加上is-official=true只显示官方镜像,is-automated=true只显示自动创建的仓库
docker search java --filter "is-official=true"
查看镜像层
docker image inspect java:8
获取镜像摘要
docker image --digests 镜像名
通过摘要下载镜像 为了避免标签重复和运行中容器的遗留问题
docker image pull 镜像名@摘要
获取全部镜像的id列表
docker image ls -q
删除所有镜像
docker image rm -f $(docker image ls -q)
创建docker镜像
Dockerfile解析
FORM:以alpine作为镜像的基础
LABEL:指定维护者
RUN:指令使用alpine的安装包管理将npm和nodejs安装到镜像中,并新建一个镜像层存储这些内容
COPY:将应用的相关文件上下文复制到了镜像中,并新建一个镜像层来存储
WORKDIR:为尚未执行的指令指定执行的目录
RUN:根据package.json中的配置使用npm安装依赖包,在前文中设置的工作目录中执行,并在镜像中新建镜像层存储相关的依赖文件
EXPOSE:设置相关的端口,将会作为镜像的元数据保存下来,不会新建镜像层
ENTRYPOINT:指定当前镜像的入口程序,将会作为元数据保存在镜像里,不会新建镜像层
构建镜像指令
nocache=true构建镜像时忽略之前的缓存,重新构建镜像,若为false则如果缓存命中的话,就会链接到缓存的镜像执行指令
docker image build 镜像名 --nocache=true
合并镜像
当要构建一个基础镜像以供其他镜像使用的时候,可以使用以下指令将所有内容合并到一个镜像层,但是合并之后镜像层就不能够进行共享
docker iamge build 镜像名 --squash