一,查看和删除镜像
1,列出docker镜像
$ docker images [OPTSIONS] [REPOSITORY]
-a,--all=false //显示所有镜像,默认是不显示中间层镜像
-f,--filter=[] //过滤条件
--no-trunc=false //指定是否截断镜像id
-q,-quiet=false //只显示镜像的唯一id
例如:
2,查看镜像的详细信息
$ docker inspect [OPTIONS]CONTAINER|IMAGE[CONTAINER|IMAGE...]
-f,--format=""
例如:
3,删除镜像
$ docker rmi [OPTIONS] IMAGE [IMAGE...]
-f,-force=false Force removal of the image //强制删除镜像
-no-prune=false Donot delete untagged parents //会保留被删除中未打标签的父镜像
例如:
1,指定镜像名和标签删除
2,指定镜像id删除
3,删除多个镜像
4,删除指定所有镜像
二,获取和推送镜像
1,查找镜像,以下查找镜像的两种方式
(1)通过Docker Hub的官方网站,https://hub.docker.com/,访问网站进行注册登录即可 查找镜像
(2)通过docker命令查找
$ docker search [OPTIONS] TERM
--automated=false Only show sutomated builds //只会显示自动化构建的镜像
--no-trunc=false Don't truncate output //是否以截断的方式显示输出
-s,--stars=0 Only displays with at least x stars //限制显示结果的最低星级
最多返回25个结果
例如:
1,查找ubuntu的镜像
2,加上星级过滤
2,拉取镜像,通过docker pull命令
$ docker pull [OPTIONS] NAME [:TAG]
-a,-all-tags=false //下载所有匹配到名字的镜像
为提高docker镜像下载效率,可以使用国内的网站DaoCloud:https://www.daocloud.io
注册登录DaoCloud网站,获取http://a03c66e5.m.daocloud.io地址,配置仓库镜像地址
使用--registry-mirror选项
添加:DOCKER_OPTS="-registry-mirror=加速地址"依次执行:
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://a03c66e5.m.daocloud.io |g" /var/lib/boot2docker/profile
exit
docker-machine restart default
这样重启Docker后就可以用国内的镜像来加速下载了。
3,推送镜像
$ docker push NAME[:TAG]
三,构建镜像
作用:
(1)保存对容器的修改,并再次使用
(2)提高自定义镜像的能力,我们可以软件的形式打包并分发服务及其环境
容器构建的过程:
1)从基础镜像运行一个容器;
2)执行一条指令,对容器做出修改;
3)执行类似dockercommit的操作,提交一个新的镜像层;
4)再基于刚提交的镜像运行一个新的容器;
5)执行Dockerfile中的下一条指令,直至所有指令执行完毕
构建镜像的两种方式:
(1)$ docker commit 通过容器构建
$ docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a,--author="" //指定作者,可以填写作者名字以及联系方式
-m,--message="" //记录镜像构建的信息
-p,pause=true //可以指示不暂停正在执行的容器
例如:
创建容器,$ docker run -it -p 80 --name commit_test ubuntu /bin/bash
修改容器,apt-get udapte , apt-get install -y nginx
提交容器为本地镜像,$docker commit -a "kongmohan" -m "Nginx" commit_test kongmohan/commit_test
运行kongmohan/commit_test,$ docker run -d -p 80 --name nginx_web kongmohan/commit_test nginx -g "daemon off;"
(2)$ docker build 通过Dockerfile文件构建
$ docker build [OPTINS] PATH|URL
--force-rm=false
--no-cache=false
--pull=false
-q,--quiet=false
--rm=true
-t,--tag=""
创建第一个Dockerfile文件,
#First Dockerfile
FROM ubuntu:14.04
MAINTAINER kongmohan "1019795824@qq.com"
RUN apt-get update
RUN apt-get install -y nginx
EXPOSE 80
先创建文件目录:mkdir -p dockerfile/df_test1
编辑保存Dockerfile:vim DockerFile
利用DockerFile构建镜像,命令:$ docker build -t="kongmohan/df_test1" .
运行kongmohan/df_test1 ,$ docker run -d -p 80 --name df_web kongmohan/df_test1 nginx -g "daemon off;"
备注:
去除缓存构建,构建的时候,加上--no-cache即可
命令:$ docker build -t="kongmohan/df_test1" . --no-cache
查看镜像构建的过程:$ docker history df_test1