欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker镜像以及私有仓库的创建

程序员文章站 2024-01-28 21:41:04
...

一、Docker镜像

1.1.1、Docker镜像简介

  • 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
  • 镜像是容器在本地运行的基础,Dokcer运行容器前需要本地存在对应的镜像,如果不存在对应的镜像,Docker 会先从默认的镜像仓库下载。
  • 应用的是发布的标准格式。
  • 支撑一个docker容器的运行。

1.1.2、docker镜像的创建方法

基于已有的镜像创建
基于本地模板创建
基于Dockerfile创建

1.1.3、docker镜像的分层结构

Docker镜像以及私有仓库的创建

  • Dockerfile中的每个指令都会创建一个新的镜像层 镜像层将被缓存和复用
  • 当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效
  • 某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效
  • 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件

二、基于已有的镜像创建实例

将容器里面运行的程序及运行环境打包生成新的镜像
docker commit  选项  容器id  想要创建的镜像名:标签
-m:说明信息
-a:作者信息
-p:生成过程中停止容器的运行
##

Docker镜像以及私有仓库的创建

三、基于本地模板创建实例

通过导入操作系统模板文件生成新的镜像
使用wget命令导入为本地镜像
Docker镜像以及私有仓库的创建
Docker镜像以及私有仓库的创建

四、使用Dockerfile创建实例

Mkdir Apache
Cd Apache
Vim Docker
FROM centos:7 # 基于的基础镜像
MAINTAINER The porject #维护镜像的用户信息
RUN yum -y update # 更新yam源
RUN yum -y install httpd # 镜像操作指令安装Apache软件
EXPOSE 80 # 开启80端口
ADD index.html /var/www/html/index.html # 复制网站首页文件
ADD run.sh /run.sh # 将执行脚本复制到镜像中
RUN chmod 755 /run.sh #给个权限
CMD ["/run.sh"] # 启动容器是执行脚本

Vim run.sh #创建脚本让CMD执行
#!/bin/bashrm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

echo “this is lkiu web” > index.html #创建一个网站让ADD复制
Docker镜像以及私有仓库的创建
生成镜像
docker build -t httpd:centos . (注意别忘了有“.”)
必须在当前有Dockerfile的目录***意空格加. 代表当前目录
Docker镜像以及私有仓库的创建
注意没有centos:7
镜像自动拉取查看一下
Docker镜像以及私有仓库的创建
新镜像运行容器
docker run -d -p 1216:80 httpd:centos
Docker镜像以及私有仓库的创建
-p 为映射端口,将容器端口80映射为宿主主机端口1216(必须是未被占用的)
测试:访问192.168.100.131:1216
Docker镜像以及私有仓库的创建

五、搭建私有仓库

私有仓库建立
Docker pull registry # 拉取镜像
Docker镜像以及私有仓库的创建
指定私有仓库位置,才能在后面上传、拉取镜像
vi /etc/docker/daemon.json Docker镜像以及私有仓库的创建

重启docker
systemctl restart docker

创建容器并启动
Docker镜像以及私有仓库的创建
Docker镜像以及私有仓库的创建
Docker镜像以及私有仓库的创建
Docker镜像以及私有仓库的创建
上传镜像到私有仓库
Docker镜像以及私有仓库的创建
获取私有仓库列表

curl -XGET http://192.168.100.131:5000/v2/_catalog
{"repositories":["centos"]}