1 罗列本机镜像列表
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公共镜像源下载。
2 新增本机镜像
docker pull 镜像名[版本号]
,如果没有版本号默认使用latest
的。
3 查找远端镜像
- 可以从公共镜像网址里获取镜像。
docker search 镜像名
,获取相关的镜像的信息。
参数说明:
-
NAME: 镜像仓库源的名称
-
DESCRIPTION: 镜像的描述
-
OFFICIAL: 是否 docker 官方发布
-
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
-
AUTOMATED: 自动构建。
4 删除本机镜像
docker rmi 镜像名
,镜像名可以从docker images
docker rmi 镜像名
5 更新本机镜像
步骤:
- 先用镜像开启容器后,在容器内进行更新。
- 更新完毕后退出容器,使用
docker commit
将修改的容器提交保存一个新的镜像。
docker commit -m "upgrade:使用apt-get update进行更新" -a="runoob" cfc3dadf9bd5 runoob/ubuntu:v2
参数说明:
-
-m: 提交的描述信息
-
-a: 指定镜像作者
-
cfc3dadf9bd5:容器 ID
-
runoob/ubuntu:v2: 指定要创建的目标镜像名
6 创建镜像
docker build
命令,根据Dockerfile文件从0创建一个镜像。
- 创建一个Dockerfile文件
例如:
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- 重启电脑
7 设置镜像tag
docker tag 镜像ID
docker tag 97cdc68827e1 runoob/centos:dev
- 97cdc68827e1: 镜像ID
- runoob/centos:镜像源名(repository name)
- dev :新的标签名(tag)。
引用:https://blog.csdn.net/i2blue/article/details/119035406 ↩︎