linux虚拟化之docker虚拟化---dockerfile与registry的简单搭建

Dockerfile

写Dockerfile的目的是为了创建属于自己的镜像。
流程为:
1,写Dockerfile。
2,将Dockerfile中需要用到的文件上传到与Dockerfile同一目录下或者其子目录下。
3,使用这个Dockerfile来构建一个镜像。
以下分别说明

dockerfile的书写格式

//dockerfile书写格式为:Dockerfile(首字母大写),建议一个目录下面只有一个Dockerfile文件
//FROM:构建镜像有两种方式:一种是scratch(从0构建),另一种基于某个镜像开始构建(服务镜像或系统镜像都可以)例如nginx。

docker镜像具有缓存特性

//如果在相同的层,用到相同的镜像,可以不必再去下载,直接使用缓存。
//即使镜像层里的操作一样,也必须是在同一层才可以使用dockerfile的缓存特性。
//即使镜像层里的操作一样,第一层内容就不相同,下面的内容相同,也是不可以使用缓存的
注意:如果在制作镜像过程中不想使用缓存,只需要在构建镜像的时候,加上–no-cache选项。
//常用指令,以nginx为例
1,FROM:构建镜像基于哪个镜像
FROM nginx
2,MAINTAINER:镜像维护者姓名或者邮箱地址
MAINTAINER test01
3,RUN:构建镜像时运行的shell命令
RUN yum -y install nginx
4,CMD:运行容器时执行的shell命令
5,EXPOSE:声明容器的服务端口
EXPOSE 80
6,ENV:设置容器环境变量
7,ADD:拷贝文件或目录到镜像,如果是URL或者压缩包会自动下载或者解压
ADD file01 /usr/share/nginx/html
8,COPY:拷贝文件或目录到镜像容器内,跟ADD类似,但不具备自动下载或解压功能
9,ENTRYPOINT:运行容器时执行的shell命令
10,VOLUME:指定容器挂载点到宿主机自动生成的目录或其他容器(防止容器死亡,造成数据丢失)
11,USER:为RUN,CMD,ENTRYPOINT执行命令指定运行用户
12,WORKDIR:为RUN,CMD,ENTRYPOINT,COPY,ADD设置工作目录,意思为切换目录
WORKDIR:/usr/share/nginx/html (相当于cd命令)
13,HEALTHYCHECK:健康检查
14,ARG:构建时指定的一些参数
注意:CMD和ENTRYPOINT在运行container时是有冲突的,只能写一条,如果写多条,最后一条生效

构建镜像

docker  build  -t  test  .

搭建一个私有仓库的容器

//我们首先下载一个镜像,registry

docker  pull  registry:2
docker  run  -itd  --name  registry  --restart=always  -p  5000:5000  -v  /registry:/var/lib/registry   registry:2

-p:端口映射 宿主机端口:容器暴露端口
-v:挂载目录 宿主机的目录:容器内的目录
–restart=always:重启docker时,自动开启容器
//修改docker的配置文件

vim  /usr/lib/systemd/system/docker.service

修改位置为红框内的
在这里插入图片描述
//重启dokcer

systemctl  daemon-reload
systemctl  restart  docker

其他主机加入该仓库的方法

//修改其他主机的docker的配置文件,位置/usr/lib/systemd/system/docker.service
修改的内容与仓库所在主机完全一致,重启docker即可。

发布了9 篇原创文章 · 获赞 2 · 访问量 342

猜你喜欢

转载自blog.csdn.net/Rhythm_master/article/details/103979036