Docker image 是什么,image,可以说是一个镜像,一个模板,就像你玩虚拟机可以克隆那样。
首先,我们需要从镜像仓库拉取镜像,就比如Docker Hub或者其它的。
Ax 镜像和容器
image(多个层组成)远看就像一个对象 = = = > 但运行时就是一个容器了。
删除镜像之前,必须把所有的容器删除。镜像和容器之间是依赖关系。
特点:镜像比较小,但需要的环境一个也不少。
Bx 使用
a 列出镜像列表
docker images
┌──(enomothem㉿enomothem)-[~/桌面]
└─$ sudo docker images
[sudo] enomothem 的密码:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> f5dce15a50fb 3 days ago 74.5MB
php apache 3730d2532c1d 4 weeks ago 417MB
hello-world latest d1165f221234 5 weeks ago 13.3kB
php 7.3.25-alpine 5b879b6b3734 3 months ago 74.3MB
leishianquan/awvs-nessus v03 a8f823729c69 5 months ago 9.62GB
leishianquan/awvs-nessus v2 79a13db3167f 10 months ago 8.9GB
vulhub/struts2 2.3.30 13b410ff5928 18 months ago 519MB
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签,标识镜像的版本
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
b 拉取一个镜像
docker pull ubuntu:13.10
┌──(enomothem㉿enomothem)-[~/桌面]
└─$ sudo docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
Image docker.io/library/ubuntu:13.10 uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
a3ed95caeb02: Pull complete
0d8710fc57fd: Pull complete
5037c5cd623d: Pull complete
83b53423b49f: Pull complete
e9e8bd3b94ab: Pull complete
7db00e6b6e5e: Pull complete
Digest: sha256:403105e61e2d540187da20d837b6a6e92efc3eb4337da9c04c191fb5e28c44dc
Status: Downloaded newer image for ubuntu:13.10
docker.io/library/ubuntu:13.10
c 进入启动关闭镜像
启动镜像
docker run/stop image
进入交互的镜像
docker run -t -i ubuntu:15.10 /bin/bash
可以指定镜像名也可以是镜像ID
- -i: 交互式操作。
- -t: 终端。
- ubuntu:15.10: 这是指用 ubuntu 15.10 版本镜像为基础来启动容器。
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
d 查找镜像
docker search httpd
e 删除镜像
docker rmi hello-world
如果不行,就 -f
强制删除
f 创建镜像
创建一个自己的镜像,以下载的Ubuntu为例,进去作一番操作之后,再提交成副本。
docker commit -m="这是配置后的" -a="Enomothem" 7f020f7bf345 enomothem/ubuntu:v2
- -m: 提交的描述信息
- -a: 指定镜像作者
- 7f020f7bf345 :容器 ID
- enomothem/ubuntu:v2: 指定要创建的目标镜像名