docker 镜像管理
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
安装镜像
docker pull centos # 安装centos
配置docker加速器(参考
vi /etc/docker/daemon.json//加入如下内容
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
说明:这个url为加速器地址,需要可以自行到阿里云申请
配置完加速器,重启docker服务,再次docker pull centos会快很多
查看本地镜像
docker images
搜索镜像
docker search xxx # 搜索镜像,其中xxx是关键词
给镜像打标签
docker tag centos tag1 # 修改REPOSITORY字段,本质还是那个镜像
docker tag centos tag1:xxx # 修改REPOSITORY和TAG字段
把镜像启动为容器
docker run -itd centos
# -i表示让容器的标准输入打开,
# -t表示分配一个伪终端,
# -d表示后台启动,要把-i -t -d 放到镜像名字前面
查看运行的容器
docker ps # 加上-a选项后可以查看所有容器,包括未运行的
删除指定镜像
docker rmi centos
# 默认为 docker rmi centos:latest
# 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag。
# 当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除
通过容器创建镜像
# 1.启动容器
docker run
# 2.进入容器
docker exec -it xxxxx bash # 其中xxxxx为容器id,这个id可以用docker ps查看,最后面的bash为进入容器后我们要执行的命令,
# 这样就可以打开一个终端
# 进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器
# 进行创建新的镜像
# 3.在容器中命令
yum install -y net-tools,# 然后ctrl d退出容器
# 4.制作容器
docker commit -m "change somth" -a "somebody info" container_id new_image_name
# container_id通过docker ps -a获取
# new_image_name为新镜像名字
例如:docker commit -m "install net-tools" -a "centosIP" 2c74d574293f centos_with_nettool
# 这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字
使用模板创建镜像
# 首先去下载一个模板
http://openvz.org/Download/templates/precreated
# 模板centos-6-x86-minimal.tar.gz
# 导入该镜像的命令为
cat centos-6-x86-minimal.tar.gz|docker import - centos
docker images # 查看导入的镜像
# 把现有镜像,导出为一个文件:
docker save -o aming-centos.tar centos
# 我们还可以用该文件恢复本地镜像:
docker load --input aming-centos.tar
# 或者
docker load < aming-centos.tar
上传镜像
docker push image_name # 可以把自己的镜像传到dockerhub官方网站上去,但前提是需要先注册一个用户,