docker 镜像管理

安装镜像

docker pull centos # 安装centos

配置docker加速器(参考 http://blog.csdn.net/xlemonok/article/details/71403534)

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官方网站上去,但前提是需要先注册一个用户,

最后更新于

这有帮助吗?