docker(二)镜像的使用
列出镜像列表
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,
如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,
我们使用 REPOSITORY:TAG 来定义不同的镜像。
所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@d77ccb2e5cca:/
查找拖取删除
docker search httpd
docker pull httpd
docker rmi hello-world
镜像的构建
'
镜像的构建
docker commit 构建镜像三部曲
运行容器
修改容器
将容器保存为新的镜像
缺点
效率低 可重复性弱 容易出错
使用者无法对镜像进行审计,存在安全隐患
'
[root@server3 ~]
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 3556258649b2 2 weeks ago 64.2 MB
game2048 latest 19299002fdbe 2 years ago 55.5 MB
[root@server3 ~]
IMAGE CREATED CREATED BY SIZE COMMENT
3556258649b2 2 weeks ago /bin/sh -c
<missing> 2 weeks ago /bin/sh -c mkdir -p /run/systemd && echo '... 7 B
<missing> 2 weeks ago /bin/sh -c set -xe && echo '
<missing> 2 weeks ago /bin/sh -c [ -z "$(apt-get indextargets)" ] 987 kB
<missing> 2 weeks ago /bin/sh -c
演示案例:
[root@server3 ~]
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
ee153a04d683: Pull complete
Digest: sha256:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70
Status: Downloaded newer image for busybox:latest
/
/
bin etc proc sys tmp var
dev home root testfile usr
/
helloworld
/
[root@server3 ~]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6789012d8958 busybox "sh" About a minute ago Exited (0) 5 seconds ago test
[root@server3 ~]
test
[root@server3 ~]
[root@server3 ~]
sha256:c1a9c80bccb0b51e410cc90bbe56460c4b84e2119741aee133d99a45da702857
'docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
各个参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
e218edb10161:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
'
[root@server3 ~]
REPOSITORY TAG IMAGE ID CREATED SIZE
test v1 c1a9c80bccb0 5 seconds ago 1.22 MB
ubuntu latest 3556258649b2 2 weeks ago 64.2 MB
busybox latest db8ee88ad75f 3 weeks ago 1.22 MB
game2048 latest 19299002fdbe 2 years ago 55.5 MB
[root@server3 ~]
IMAGE CREATED CREATED BY SIZE COMMENT
c1a9c80bccb0 24 seconds ago sh 59 B
db8ee88ad75f 3 weeks ago /bin/sh -c
<missing> 3 weeks ago /bin/sh -c
docker rm -f
[root@server3 ~]
/
bin etc proc sys tmp var
dev home root testfile usr
/
helloworld
Dockerfile文件的方式
创建一个Dockerfile
[root@server3 mnt]
/mnt
[root@server3 mnt]
docker
[root@server3 mnt]
[root@server3 docker]
[root@server3 docker]
'FROM busybox #以哪个基础镜像为模板
RUN echo testfile > file1 #在新镜像中你要执行的哪些动作
RUN echo testfile > file2'
[root@server3 docker]
Sending build context to Docker daemon 2.048 kB
Step 1/3 : FROM busybox
---> db8ee88ad75f
Step 2/3 : RUN echo testfile > file1
---> Running in 4c00ef6f0753
---> e8a1fbac8837
Removing intermediate container 4c00ef6f0753
Step 3/3 : RUN echo testfile > file2
---