Docker应用(三)--- image

1.image常识:

image是分层的,每一层都可以添加,改变,删除文件,称为一个新的image,
不同的image可以共享相同的layer,image本身是read-only的,查看分层:

docker history [imageid]

2.image的获取有三种方法:

i.使用docker pull方式从dockerhub获取(hub.docker.com);
ii.使用Dockerfile构建
iii.在container的基础上构建

3.常用命令:

docker image ls #简写 docker images
docker image rm [imageid] #简写 docker rmi [imageid]
docker pull [username]/imagename:version

4.使用Dockerfile构建hello-world镜像:

i.编写hello.c:

#include<stdio.h>

int main(){
 printf("hello docker\n");
}

ii.安装需要的工具并编译hello.c:

yum install gcc
yum install glibc-static
gcc -static hello.c -o hello

iii.新建Dockerfile文件:

FROM scratch
ADD hello /
CMD ["/hello"]

iv.使用Dockerfile构建镜像:

docker build -t hurricane123/hello-world . # docker build是docker image build的简写,从Dockerfile构建一个image

v.执行构建好的镜像:

docker run hurricane123/hello-world

5.使用dockerhub发布镜像:

docker login #需要在hub.docker.com上注册用户
docker push hurricane123/hello-world:latest #hurricane123必须为自己的用户名

6.创建私有docker仓库:

i.使用registry镜像即可:

docker -d -p 5000:5000 --restart always --name registry registry:2

ii.在/etc/docker目录下向daemon.json中添加:

{"insecure-registries":["private-registry-ip:private-registry-port"]}

iii.在/lib/systemd/system/docker.service中添加EnvironmentFile=-/etc/docker/daemon.json
如下:

...
ExecStart=/usr/bin/dockerd
EnvironmentFile=-/etc/docker/daemon.json
ExecReload=/bin/kill -s HUP $MAINPID
...

iv.现在就可以向私有docker仓库推送docker镜像了:

docker push [private-registry-ip]:[private-registry-port]/[imageName] 

v.通过私有库的api(通过浏览器访问)可以查看已经成功提交的image:

private-registry-ip:private-registry-port/v2/_catalog

 

 

参考:

视频教程:系统学习Docker 践行DevOps理念

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值