2. docker镜像

阿里云官网地址:https://www.aliyun.com/

首先注册一个阿里云账号并且登录,然后点击右上角的“控制台”

 

 找到产品与服务中的“容器镜像服务”

 

 点击镜像加速器,根据不同的操作系统选择不同的方法

 

 

############################

 

docker镜像默认的下载地址就是docker的官网,而他们的官网在国内没有节点,时不时就被国家防火墙隔绝,会出现DNS解析不到,或者找不到镜像等狗血提示.

 

解决的方法有三个:

 

添加加速器,有阿里云,孔雀云,DaoCloud等,个人建议用DaoCloud,因为方法比较简单一些.

 

更换下载地址

 

#阿里云
docker pull registry.cn-hangzhou.aliyuncs.com/acs-sample/redis-sameersbn
#时速云
docker pull index.tenxcloud.com/tenxcloud/ubuntu
#网易蜂巢
docker pull hub.c.163.com/xbingo/jdk8:latest

 

  

 

自动下载镜像并创建一个容器.

 

docker run --rm -ti centos:latest /bin/bash

 

  

 

只下载镜像,不创建容器

 

docker pull centos:latest

 

  

 

上面两条命令都会先查找当前镜像库有没有相关名字的镜像,没有的话就去下载相关镜像名的镜像.

 

查找有什么镜像就用下面的命令,他列举出所有相关名字内容的docker镜像名,包含官方的,也包含社区其他用户上传的,一般来说会注明镜像包含了什么软件和功能,然后自己按需求来下载选择

 

docker search centos

 

  

 

################

 

创建仓库:

docker run -d -p 5000:5000 -v /root/registry:/data/docker registry:2

/root/registry:指定本地一个目录/root/registry挂载到容器内的/tmp/registry下.

/data/docker:将仓库存放于容器内的/data/docker目录下,如果容器被删除,镜像也会丢失,

registry:2:   镜像名

-d 后台执行

-p -P 指定容器暴露的端口。

-v  给容器挂载存储卷,挂载到容器的某个目录

 

制作镜像:

docker commit 449d0022bafa 172.17.0.3:5000/linuxws

 

docker run -i -d -p 1880:80 -p 13306:3306 -p 122:22 -p 123:23 -p 69:69/udp -p 514:514/tcp -v /Users/apple/znms/03_code/trunk/z-nms:/var/www/html/z-nms -e "REMOTE_HOST=调试ip地址" --restart=always znms:v1

 

 

docker images : 列出本地镜像。

格式:docker images [OPTIONS] [REPOSITORY[:TAG]]
-a :    列出本地所有镜像
--digests: 显示镜像的摘要。显示DIGEST
-f :     显示满足条件的镜像
--no-trunc: 显示IMAGE ID
-q:     只显示镜像ID

docker rmi : 删除本地一个或多个镜像。  
#格式:docker rmi [OPTIONS] IMAGE [IMAGE...]
 -f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除;

docker tag : 标记本地镜像,将其归入某一仓库。
  格式:
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

commit --通过容器创建本地镜像 生成镜像的命名:docker commit centos_v1 centos:v1

#docker push victor/centos:v1,其中ivictor是用户名;v1是tag,可不写,默认是latest

因为它push到docker hub中时,推送到相应用户下,必须指定用户名。

 

将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。

docker tag ubuntu:15.10 runoob/ubuntu:v3
root@runoob:~# docker images   runoob/ubuntu:v3
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
runoob/ubuntu       v3                  4e3b13c8a266        3 months ago        136.3 MB

虚悬镜像:

镜像列表中,有一个特殊的镜像,这个镜像没有仓库名,没有标签,均为 <none> :

<none> <none> 00285df0df87 5 days ago 342 MB

官方发布了新版本后,新旧镜像同名,从而出现仓库名、标签均为 <none> 的镜像。docker build 也会导致这种现象。

显示这类镜像:

docker images -f dangling=true

虚悬镜像没有用处,可以删除:$ docker rmi $(docker images -q -f dangling=true)

 

中间层镜像

$ docker images -a  #显示包括中间层镜像和顶级镜像。

这样会看到很多无标签的镜像,与虚悬镜像不同,这些镜像都是其它镜像所依赖的镜像。这些无标签镜像不应该删除,否则会导致上层镜像因为依赖丢失而出错。实际上,这些镜像也没必要删除,因为相同的层只会存一遍,而这些镜像是别的镜像的依赖,因此并不会因为它们被列出来而多存了一份。只要删除那些依赖它们的镜像后,这些依赖的中间层镜像也会被连带删除。

制作镜像:

sudo docker commit -m='A new image' --author='Aomine' 614122c0aabb aoct/apache2

-m指定行创建的镜像的提交信息。--author指定镜像作者,接着是容器ID、目标镜像仓库、镜像名。

 
 
###########

2、保存镜像
我们的镜像做好之后,我们要保存起来,以供备份使用,该怎么做?使用docker save命令,保存镜像到本地。

[root@rocketmq-nameserver4 dev]# docker save -o rocketmq.tar rocketmq ##-o:指定保存的镜像的名字;rocketmq.tar:保存到本地的镜像名称;rocketmq:镜像名字,通过"docker images"查看
[root@rocketmq-nameserver4 dev]# ll 


rocketmq.tar为刚保存的镜像

3、载入镜像
我们有了本地的镜像文件,在需要的时候可以使用docker load将本地保存的镜像再次导入docker中。
docker load --input rocketmq.tar 或 docker load < rocketmq.tar

4、删除镜像
有些镜像过时了,我们需要删除。使用如下的命令:docker rmi -f image_id ##-f:表示强制删除镜像;image_id:镜像id

 

posted @ 2017-05-18 15:55  linuxws  阅读(1507)  评论(0编辑  收藏  举报