搭建docker镜像制作alpine安装源

最近更新docker镜像时,需要从alpine的安装源上拉取些包,但是服务器down掉了,而且找不到相应的维护人员,于是决定准备自己搭建一套

首先从网上拉取3.5版本的apk包,脚本如下:

wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/main/x86_64/

wget -r -np -nH http://nl.alpinelinux.org/alpine/v3.5/community/x86_64/

拉取这两个目录(main路径下为官方提供的apk包,community路径下为社区提供的包)大致需要1天多,拉取完成之后,拷贝到待安装的服务器(为了便于区分,我们叫它新服务器)上,为了提高效率,可以压缩之后再上传到新服务器。

剩下的工作就是安装服务,并将其挂载到服务器下,因所有的文件都是静态资源,用NGINX作为服务器更具有优势,因此选取NGINX作为服务器容器,需要配置本地资源;配置NGINX的conf文件;挂载本地资源到容器上。

配置本地资源:

在nginx根目录下创建conf、conf.d、html文件夹,将alpine文件包放到html文件夹下面,创建启动脚本start.sh

在conf下,创建nginx.conf文件,脚本详情如下:

user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events{

  worker_connections 1024;

}

http{

  include /etc/nginx/mime.types;

  default_type application/octet-stream;

  log_format main '$stream_addr - $remote_user [$time_local] "$request" '

                  '$status $body_bytes_sent "$http_referer" '

                  ' "$http_user_agent "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

server {

  listen 80;

  server_name locahost;

  charset utf-8;

  root /usr/share/nginx/html;

  location / {

      autoindex on;

      autoindex_exact_size off;

      autoindex_localtime on;

  }

}

keepalive_timeout 65;

include /etc/nginx/conf.d/*.conf;

}

我在nginx.conf里的配置已经能满足要求,因此未在conf.d下配置任何东西,

然后是启动脚本,使用镜像 nginx:1.11.5-alpine,启动脚本如下(命名为start.sh)

#!/bin/bash

path=/home/nginx

docker run -d --name alpine-repo-src \

  -v $path/html:/usr/share/nginx/html \

  -v $path/conf/nginx.conf:/etc/nginx/nginx.conf:ro \

  -v $path/conf.d:/etc/nginx/conf.d \

  nginx:1.11.5-alpine

将start.sh修改为可执行文件、并执行

chmod +x start.sh && sh start.sh

然后打开浏览器、输入新服务器的IP,便可以查看所有的apk包了

接下来是验证是否能够正常工作

创建一个dockerfile,如下

FROM alpine:3.7

MAINTAINER HEZS "[email protected]"

RUN echo "http://myhostip/alpine/v3.5.main" > /etc/apk/repositories && \

  apk update && apk upgrade && apk add openssh

如果构建成功,则表示源能正常使用

你可能感兴趣的:(搭建docker镜像制作alpine安装源)