Docker深入浅出系列教程——镜像管理【外加视频】-阿里云开发者社区

开发者社区> 开发与运维> 正文

Docker深入浅出系列教程——镜像管理【外加视频】

简介: 我是架构师张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,请关注我的头条号,我们一起奇闻共赏,疑义相析。 接下来来讲解Docker三大组件之一的镜像,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。

我是架构师张飞洪,钻进浩瀚代码,十年有余,人不堪其累,吾不改其乐。如果你和我的看法不一样,请关注我的头条号,我们一起奇闻共赏,疑义相析。

接下来来讲解Docker三大组件之一的镜像,如果说镜像是静态的只读文件,那么容器就是带有运行时需要的可写文件层。也可以这样理解,镜像是对象的模板——类,容器是类生成的对象,镜像只有一个,对象可以有很多个。如果大家觉得看文字不过瘾,可以收看我的视频

1.搜索镜像

docker search ubuntu   //搜索镜像
 
2.拉取镜像

 
docker pull ubuntu:14.04  //NAME[:TAG],如果不加标签,默认是latest ; 先本地,后仓库[官方,私人]
 
・配置加速器地址,记得配后重启
vi /etc/docker/daemon.json
{
     "registry-mirrors": ["https://registry.docker-cn.com"]
}
 
#重启
sudo service docker restart 
 
3.查看镜像 

docker images  -a //查看本地的镜像
 
4.设置标签

docker tag f975 jackyfei/ubuntu:dev //给镜像打标签
 
5.启动容器并进入终端

docker run -itd image id  //把镜像启动为容器,-i表示让容器以标准输入打开,-t表示分配个伪终端,-d表示后台启动
 
6.删除镜像

docker rmi ubuntu   //后面的参数可以是tag,如果是tag,实际上是删除该tag。当后面的参数为镜像ID时,则会彻底删除整个镜像,所有标签也会一同删除。
 
7.构建镜像

vi Dockerfile         //包含一组指令,Dockerfile规则
 
FROM jackyfei/ubuntu:dev
MAINTAINER jackyfei "zfh@astop.com.cn"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd jackyfei
RUN /bin/echo 'jackyfei:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
 
docker build -t jackyfei/ubuntu:dev .         //生成镜像
 
8.上传镜像

docker push NAME[:TAG] | [REGISTRY HOST : EGISTRY_PORT/INAME[:TAG]]
 
//公共仓库
docker tag test:latest user/test:latest         //打标签
docker push jackyfei/ubuntu:dev                //上传
 
//私人仓库
7.1 docker pull registry                                 //registry是docker官方镜像,用来创建本地的docker私有仓库
7.2 sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry  
                                                                     //启动容器,冒号左边为宿主机端口,右边为容器端口
7.3 vi /etc/docker/daemon.json                   //修改配置为:{"insecure-registries":["172.16.0.245:5000"]}
7.4 systemctl restart docker                        //重启容器
7.5 docker tag ubuntu:16.04 172.16.0.245:5000/ubuntu       //打标签
7.6 docker push 172.16.0.245:5000/ubuntu                   //推送到私有仓库
7.7 curl 172.16.0.245:5000/v2/_catalog                               //查看推送上来的镜像
7.8 docker pull 172.16.0.245:5000/ubuntu
 

如果对Docker有更深的洞察,欢迎补充和讨论,感谢您的捧场。我是张飞洪,我为博客园的读者写故事。我会给你呈现程序员眼中的世界,请关注我的头条号,或者加我的QQ群【105365283】一起学习!

 

 

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章