docker images

我们可以从图中看到里面有存在两个ubuntu的镜像,一个是latest版本的,一个是15.10版本的。
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如果我们在运行时可以使用REPOSITOORY:TAG来使用具体的镜像,如果不加具体的TAG就会默认使用latest版本的。比如说:
docker run -t -i ubuntu:15.10 /bin/bash
里面的ubuntu:15.10。
属性说明:
REPOSITORY:表示镜像的仓库源。
TAG:镜像的标签。
IMAGE ID:镜像ID。
CREATED:镜像创建时间。
SIZE:镜像大小。
镜像的由来:如果镜像没有下载,但是运行容器的时候镜像不存在,会默认从Docker Hub公共镜像源下载。
docker pull 镜像名[版本号],如果没有版本号默认使用latest的。
docker search 镜像名,获取相关的镜像的信息。
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
docker rmi 镜像名,镜像名可以从docker images
docker rmi 镜像名

步骤:
docker commit将修改的容器提交保存一个新的镜像。 docker commit -m "upgrade:使用apt-get update进行更新" -a="runoob" cfc3dadf9bd5 runoob/ubuntu:v2

参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
cfc3dadf9bd5:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
docker build命令,根据Dockerfile文件从0创建一个镜像。
例如:
FROM centos:6.7
LABEL maintainer="swrici"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
- 每个指令前缀都必是大写。
- 每一个指令都会在镜像上创建一个新的层,
- 第一条FROM,指定使用哪个镜像源
- RUN 指令告诉docker 在镜像内执行命令,安装了什么

docker build 命令docker build -t runoob/centos:6.7 .
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
执行结果:

如果是windows下的linux子系统可能会在执行中出现错误码139的情况。
解决方案1
- 在用户目录下新建
.wslconfig文件。 比如:C:\Users(用户名).wslconfig- 文件内容为:
[wsl2]
kernelCommandLine = vsyscall=emulate- 重启电脑
docker tag 镜像ID
docker tag 97cdc68827e1 runoob/centos:dev
引用:https://blog.csdn.net/i2blue/article/details/119035406 ↩︎