一、查看和删除镜像
方法一:一般情况下镜像的存储地址为 /var/lib/docker
方法二:通过docker info
查看镜像信息
1. 列出镜像
1 2 3 4 5
| docker images [OPTSIONS] [REPOSITORY] -a ,--all -f , --filter=[] --no-trunc(使用截断的方式显示) -q,--quiet(只显示ID)
|
2. 镜像标签和仓库
REPOSITORY 仓库(独立的镜像)
RESGISTRY 仓库(镜像存储服务)
TAG (ubuntu:14.04 ubuntu:latest)
3. 查看镜像
1
| docker inspect [OPTIONS] CONTAINER|IMAGE [ CONTAINER|IMAGE...]
|
4. 删除镜像
1 2 3
| docker rmi [OPTIONS] IMAGE -f,--force 强制删除 --no-prune (不会删除未打标签的父镜像)
|
扩展:docker 并没有删除多个镜像的操作
删除所有 ubuntu 镜像 docker rmi $(docker images -q ubuntu)
二、获取和推送镜像
1. 查找镜像
方法一:Docker Hub(需注册账户)
方法二:命令行搜索
1 2 3 4 5
| docker search [OPTIONS] TERM -- automated (自动化构建镜像) --no-trunc (截断形式) -s,--stars=0 (评分) 示例:docker search -s 3 ubuntu(搜索3星以上的 ubuntu 镜像)
|
2. 拉取镜像
1 2
| docker pull [OPTIONS] NAME [:TAG] -a,--all-tags (所有标记)
|
使用–registry-mirror选项,添加国内镜像进行加速
- 修改:
vim /etc/default/docker
- 添加:
DOCKER_OPTS="--registry-mirror=镜像地址"
我们这里使用daocloud(需注册账户),使用加速器生成的链接配置以上的镜像地址 - 重新启动 docker 守护进程
service docker restart
- 查看 docker 状态
ps -ef |grep docker
3. 推送镜像
1
| docker push [OPTIONS] NAME [:TAG]
|
三、构建镜像
1 2 3 4
| 优点: - 保存对容器的修改,并再次使用 - 自定义镜像的能力 - 以软件的形式打包并分发服务及其运行环境
|
方法一:
docker commit
通过容器构建镜像
1 2 3 4
| docker commit [OPTIONS] CONTAINER [REPOSITORY] -a, -m, -p,
|
示例:(用前面的 web
容器生成 ubuntu/commit_test1
镜像,再生成以 ubuntu/commit_test1
镜像为基础的两个 nginx_web
容器)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| root@wkaanig:~ sha256:27b64732dde89f0f6f466e9dc0da7b06bdc7547cf37a878515b4b42167f2f657 root@wkaanig:~ REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu/commit_test1 latest 27b64732dde8 About a minute ago 206MB ubuntu latest a2a15febcdf3 4 weeks ago 64.2MB hello-world latest fce289e99eb9 8 months ago 1.84kB root@wkaanig:~ 43b432b814019b7e1ba111ef064bb800e986476e38e4947730c189511e7b1d49 root@wkaanig:~ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43b432b81401 ubuntu/commit_test1 "nginx -g 'daemon of…" 6 seconds ago Up 5 seconds 80/tcp nginx_web1 root@wkaanig:~ 3674c7cef4f4f7e9c2d7040fd5dd2d8776f08761d7db3934dca5c23132f2b9af root@wkaanig:~ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3674c7cef4f4 ubuntu/commit_test1 "nginx -g 'daemon of…" 8 seconds ago Up 7 seconds 0.0.0.0:32769->80/tcp nginx_web2
|
1 2 3 4 5 6 7 8 9
| root@wkaanig:~ <html> <head> <title>Nginx in docker<title> <head> <body> <h1>hello Docker</h1> <body> <html>
|
方法二:
docker bulid
通过Dockerfile
文件构建
(1)写入dockerfile 文件
Dockerfile
文件内容:(基础指令必须存在,其余指令视情况而定)
- 基础指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
FROM ubuntu:14.04
MAINTAINER wkaanig "wkaanig721@163.com"
RUN apt-get update RUN apt-get insatll -y nginx
EXPOSE 80
|
- 其余指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
FROM ubuntu:14.04 MAINTAINER wkaanig "wkaanig721@163.com" RUN apt-get update RUN apt-get insatll -y nginx EXPOSE 80 CMD ["/usr/sbin/nginx","-g","daemon off;"]
FROM ubuntu:14.04 MAINTAINER wkaanig "wkaanig721@163.com" RUN apt-get update RUN apt-get insatll -y nginx EXPOSE 80 ENTERYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
FROM ubuntu:14.04 MAINTAINER wkaanig "wkaanig721@163.com" RUN apt-get update RUN apt-get insatll -y nginx EXPOSE 80 ENTERYPOINT ["/usr/sbin/nginx"] CMD ["-g"]
FROM ubuntu:14.04 MAINTAINER wkaanig "wkaanig721@163.com" RUN apt-get update RUN apt-get insatll -y nginx COPY index.html /usr/share/nginx/html/ EXPOSE 80 ENTERYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
FROM ubuntu:14.04 MAINTAINER wkaanig "wkaanig721@163.com" RUN apt-get update RUN apt-get insatll -y nginx ONBUILD COPY index.html /usr/share/nginx/html/ EXPOSE 80 ENTERYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
|
(2) docker bulid 构建镜像
1 2 3 4 5 6 7
| docker bulid [OPTIONS] PATH|URL|- --force-rm --no-cache --pull -q,--quiet --rm -t,--tag
|
示例:
1 2
| docker bulid -t="wkaanig/docker_file_test1" . docker run -p 80 --name cmd_test1 -d wkaanig/docker_file_test1
|
最后更新时间:本文遵循CCBY-NC-SA4.0许可协议,本文链接:
http://blog.wkaanig.cn/post/ebc79fe5.html