docker镜像操作

来源:互联网 发布:监听2121端口 编辑:程序博客网 时间:2024/05/29 19:50

镜像操作

  1. 获取镜像到本地
docker pull [OPTIONS] [REPOSITROY] NAME[:TAG|@DIGEST]docker pull ubuntu:14.04 #既是从官方仓库获取library用户获取标签为14.04的Ubuntu镜像
  1. 查看本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]## examplesdocker images #列出本地镜像,不包括虚镜像(dangling images),仓库名和标签均为</p><none>docker images -a #列出本地镜像,包括虚镜像docker images ubuntudocker images ubuntu:16.04 #列出指定镜像docker images -f dangling=true #列出虚镜像, -f 后面加上过滤条件
  1. 删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]## examplesdocker rmi ubuntudocker rmi b39de1d79a53 #可以指定image的ID,有多个删除时,ID间加空格即可docker rmi $(docker images -q -f dangling=true) #删除虚镜像
  1. commit定制镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]## examples## 大致可以分为启动,进入,修改,查看,提交## 启动一个名为webserver的nginx容器docker run --name webserver -d -p 80:80 nginx## 以交互终端方式进到webserver容器中docker exec -it webserver bash## 修改容器并退出,这里将nginx的欢迎页面更换成我们自己的echo "<h1>Hello Docker!</h1>" > /usr/share/nginx/html/index.htmlexit## 查看更改docker diff webserver## 生成新的镜像docker commit --author "blinkdr<zhouleyong22@126.com>" --message "修改默认首页" webserver nginx:v2## 查看新生成的镜像docker images nginx## 查看镜像的修改的历史docker history nginx:v2## 使用新镜像启动新的serverdocker run --name web2 -d -p 81:80 nginx:v2

虽然可以利用commit命令,通过以上方式定制镜像,但是并不推荐这么做

  1. build定制镜像
docker build [OPTIONS] PATH | URL | -

build后面跟着的是构建上下文,通常是Dockerfile所在的路径

5.1 过Dockerfile定制

## examplesmkdir mynginxcd mynginxtouch Dockerfile

Dockerfile内容为
FROM nginx
RUN echo "<h1>Hello Docker!</h1>" > /usr/share/nginx/html/index.html

## 定制名为nginx的新镜像docker build -t nginx:v3 . 

注意最后的“.”号,这里的“.”代表的是上下文的路径

5.2 通过URL构建

## git repodocker build https://github.com/gogits/gogs.git## tar压缩包docker build http://server/context.tar.gz

5.3 其他方式构建

docker build - < Dockerfilecat Dockerfile | docker build -docker build - < context.tar.gzdocker build -f  /path/to/docker/file

更多的Dockerfile用法将在后续文章中介绍

  1. 其他镜像操作命令
docker history #查看镜像的历史信息docker import  #docker load     #从tar压缩文件或标准输入中加载镜像docker push    #推送镜像到仓库中docker save    #打包镜像到压缩文件(默认到标准输出)docker search #在仓库中搜索镜像docker tag       ### examplesdocker save alpine | gzip > alpine-latest.tar.gzdocker load -i alpine-latest.tar.gzdocker save <镜像名> | bzip2 | pv | ssh <用户名>@<主机名> 'cat | docker load'

可以通过以上三个命令来进行镜像在服务器间的迁移,但不推荐这么做

原创粉丝点击