docker镜像操作

本文介绍了Docker的镜像操作,包括获取、查看和删除本地镜像,重点讨论了通过commit和build命令定制镜像,尤其是使用Dockerfile进行构建,并提到了其他镜像操作命令和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

镜像操作

  1. 获取镜像到本地
docker pull [OPTIONS] [REPOSITROY] NAME[:TAG|@DIGEST]
docker pull ubuntu:14.04 #既是从官方仓库获取library用户获取标签为14.04的Ubuntu镜像
  1. 查看本地镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
## examples
docker images #列出本地镜像,不包括虚镜像(dangling images),仓库名和标签均为</p><none>
docker images -a #列出本地镜像,包括虚镜像
docker images ubuntu
docker images ubuntu:16.04 #列出指定镜像
docker images -f dangling=true #列出虚镜像, -f 后面加上过滤条件
  1. 删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
## examples
docker rmi ubuntu
docker 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.html
exit
## 查看更改
docker diff webserver
## 生成新的镜像
docker commit --author "blinkdr<zhouleyong22@126.com>" --message "修改默认首页" webserver nginx:v2
## 查看新生成的镜像
docker images nginx
## 查看镜像的修改的历史
docker history nginx:v2
## 使用新镜像启动新的server
docker run --name web2 -d -p 81:80 nginx:v2

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

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

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

5.1 过Dockerfile定制

## examples
mkdir mynginx
cd mynginx
touch 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 repo
docker build https://github.com/gogits/gogs.git
## tar压缩包
docker build http://server/context.tar.gz

5.3 其他方式构建

docker build - < Dockerfile
cat Dockerfile | docker build -
docker build - < context.tar.gz
docker build -f  /path/to/docker/file

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值