docker 镜像使用
安装请参考:https://blog.csdn.net/wanchaopeng/article/details/887963541.docker下载镜像docker pull centos2. docker 查看镜像[root@ybsrv1 /]# docker imagesREPOSITORYTAGIMAGE ID...
安装请参考:
https://blog.csdn.net/wanchaopeng/article/details/88796354
1.docker下载镜像
docker pull centos
一般来说,镜像的latest标签意味着该镜像的内容会跟踪最新版本的变化而变化,内容是不稳定的
镜像文件一般是由若干层(layer)组成,使用docker pull命令下载中会获取并输出镜像各层信息,当不同的镜像包括相同的层时,本地仅存储了层的一份内容,减小了存储空间。
2. docker 查看镜像
使用docker images或docker images ls 命令可以列出本地主机上已有镜像的基本信息
[root@ybsrv1 /]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest ee2526f4865b 10 days ago 201.8 MB
来自哪个仓库,比如centos表示centos系列的基础镜像
镜像的标签信息,比如laster表示不同的版本信息。标签只是标记,并不能标识镜像内容
镜像的ID(唯一标识镜像),如果两个镜像ID相同,说明他们实际上只想了同一个镜像,只是具有不同标签名
创建时间 说明镜像最后的更新时间
镜像大小
-a, --all=true|false: 列出所有(包括临时文件)镜像文件,默认为否;
--digests=true|false: 列出镜像的数字摘要值,默认为否
-f, --filter=[] : 过滤列出的镜像,如dangling=true只显示没有被使用的镜像; 也可指定电邮特定标注的镜像等
--format="TEMPLATE":输出控制格式,如 .ID 代表ID信息, .Repository 代表仓库信息等
--no-trunc=true|false: 对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为是;
-q, --quiet=true|false: 仅输出ID信息,默认为否
其中,还支持对输出结果进行控制的选项,如 -f. --filter= [], --no-trunc=true|false, -q --quiet=true|false等
3. docker添加标签
[root@ybsrv1 /]# docker tag centos:latest linux:latest
[root@ybsrv1 /]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest ee2526f4865b 10 days ago 201.8 MB
linux latest ee2526f4865b 10 days ago 201.8 MB
4. docker 查看详细信息
docker inspect ee2526f4865b
查看单个信息
[root@ybsrv1 /]# docker inspect -f {{".Architecture"}} ee2
amd64
4.1 使用history命令查看镜像历史
查看centos:latest镜像创建过程,可以使用如下命令:
[root@kubernetes /etc/docker]# docker history centos
IMAGE CREATED CREATED BY SIZE COMMENT
470671670cac 2 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 2 months ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 2 months ago /bin/sh -c #(nop) ADD file:aa54047c80ba30064… 237MB
注意,过长的命令被自动截断,可以使--no-trunc选项来输出完整命令
5. 搜寻镜像
[root@ybsrv1 /]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relati... 7949 [OK]
mariadb MariaDB is a community-developed fork of M... 2659 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Crea... 598 [OK]
...
6.删除镜像
使用docker rmi或docker image rm命令可以删除镜像,命令格式为docker rmi IMAGE其中IMAGE可以为标签或ID
-f -force: 强制删除镜像,即使有容器依赖它
-no-prune: 不要清理未带标签的父镜像
[root@ybsrv1 /]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest ee2526f4865b 10 days ago 201.8 MB
linux latest ee2526f4865b 10 days ago 201.8 MB
[root@ybsrv1 /]# docker rmi linux:latest
Untagged: linux:latest
[root@ybsrv1 /]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest ee2526f4865b 10 days ago 201.8 MB
[root@ybsrv1 /data]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2705c7d53909 ubuntu:14.04 "/bin/bash" 4 hours ago Exited (0) 4 hours ago clever_sammet
90a1c9ed8d1d ubuntu "echo 'i see world'" 5 hours ago Exited (127) 5 hours ago angry_hodgkin
[root@ybsrv1 /data]# docker rmi ubuntu
Error response from daemon: Conflict, cannot delete 9989c6003fac because the container 90a1c9ed8d1d is using it, use -f to force
Error: failed to remove images: [ubuntu]
[root@ybsrv1 /data]# docker rmi -f ubuntu #强制删除后台运行镜像
注意: 当该镜像创建的容器存在时,镜像文件默认是无法被删除的
[root@kubernetes /etc/docker]# docker rmi centos
Error: No such image: centos
[root@kubernetes /etc/docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
813286dbd367 centos "echo 'hello! I am h…" 7 seconds ago Exited (0) 6 seconds ago hungry_wilbur
若想强制删除,使用-f 参数
[root@kubernetes /etc/docker]# docker rmi -f centos
Untagged: centos:latest
Untagged: centos@sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Deleted: sha256:470671670cac686c7cf0081e0b37da2e9f4f768ddc5f6a26102ccd1c6954c1ee
6.1 清理镜像
7、创建镜像
创建镜像的方法有三种,基于已有进行的容器创建,基于本地模板的导入,基于dockerfile的创建
7.1 基于已有镜像的容器创建
该方法主要是使用docker commit 命令,其命令格式为docker commit [OPTIONS] CONTAINER [REPOSITORY [:TAG]]
-a --author= " " 作者信息
-m --message=" " 提交信息
-c --change=[]: 提交的时候执行Dockerfile指令,包括CMD|ENTPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;
-p --pause=true 提交时暂停容器运行
[root@ybsrv1 /data]# docker run -ti data:latest /bin/bash
root@e2c7c7337034:/# touch test
root@e2c7c7337034:/# exit
查看容器id
[root@ybsrv1 /data]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2c7c7337034 data:latest "/bin/bash" About a minute ago Exited (0) 50 seconds ago serene_archimedes
39d704402e50 ubuntu:latest "/bin/bash" 2 minutes ago Exited (127) 2 minutes ago sick_euclid
2705c7d53909 ubuntu:14.04 "/bin/bash" 4 hours ago Exited (0) 4 hours ago clever_sammet
90a1c9ed8d1d ubuntu "echo 'i see world'" 5 hours ago Exited (127) 5 hours ago angry_hodgkin
[root@ybsrv1 /data]# docker commit -m "add a new file" -a "root" e2c7c7337034 test
2defae56a52547bc10066670448e5b76e1c615d68cc5ab6a6de6fb60cf87a213
[root@ybsrv1 /data]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test latest 2defae56a525 4 seconds ago 188.1 MB
data latest a3158aa0a86b 4 hours ago 188.1 MB
centos latest ee2526f4865b 11 days ago 201.8 MB
ubuntu 14.04 cd44af56e7ce 2 weeks ago 188.1 MB
ubuntu latest 9989c6003fac 2 weeks ago 88.91 MB
7.2 基于本地模板导入
也可直接从一个操作系统模板文件导入一个镜像,主要使用docker [container] import命令。
格式为:
docker [image] import [OPTIONS] file|URL| - [REPOSITORY [:TAG]]
下载centos的模板压缩包,之后导入
cat centos.tar.gz |docker import - centos:latest
7.3 基于Dockerfile 创建
8. docker的导入和导出
8.1 导出镜像
[root@kubernetes /etc/docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yunwei latest ba1fe2957df1 6 seconds ago 237MB
test latest 84130a579e4b 3 minutes ago 237MB
mysql latest 9b51d9275906 2 weeks ago 547MB
centos latest 470671670cac 2 months ago 237MB
w564791/pod-infrastructure latest f66f4bd9b894 2 years ago 206MB
kubeguide/tomcat-app v1 a29e200a18e9 3 years ago 358MB
[root@kubernetes /etc/docker]# docker save -o yunwei.tar.gz yunwei
8.2 导入镜像
[root@kubernetes /docker]# docker load -i yunwei.tar.gz
或者
[root@kubernetes /docker]# docker load < yunwei.tar.gz
9、上传镜像
用户user上传本地的test:latest镜像,可以先添加新的标签user/test:latest 然后用docker [image] push 命令上传镜像
docker tag test:latest user/test:latest
docker push user/test:latest
小结:
介绍docker 操作命令,包括获取,查看,搜索,删除,创建
更多推荐
所有评论(0)