docker镜像制作
一、基于alpine系统制作镜像
1.1 alpine基础镜像制作
注意:alpine镜像没有bash,但是有sh
启动容器之后,进入容器docker exec -it alpine sh
1.1.1 启动alpine容器
docker run -d -it --name alpine alpine:latest
1.1.2 进入容器
docker exec -it alpine sh
1.1.3 准备文件
- repositories文件内容
repositories文件跟*.repo文件一样
http://mirrors.aliyun.com/alpine/v3.11/main
http://mirrors.aliyun.com/alpine/v3.11/community
- dockerfile文件内容
#dockerfile is alpine-base image
FROM alpine:3.11
LABEL mail=timerovers@163.com
ARG v=3.11
COPY repositories /etc/apk/repositories
#更新源以及基本配置
RUN apk update \
#设置Docker 时间为上海时区
&& apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/shanghai" >> /etc/timezone \
#安装基础命令并清除缓存
&& apk add --no-cache vim psmisc curl openssh-client busybox-extras \
&& rm -rf /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache
# 这里添加top命令是为了方便本地测试,防止启动该基本镜像容器后自动运行停止
ENTRYPOINT ["/bin/sh"]
- 查看alpine基础镜像大小
[root@localhost alpine]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine-base 3.11 e4c8a16bed64 3 seconds ago 34.5MB
1.2 制作git镜像
1.2.1 启动容器
因为使用的是alpine做的基础镜像,所以启动命令也一样
docker run -d -it --name alpine alpine:latest
1.2.2 进入容器
docker exec -it alpine sh
1.2.3 准备文件
- repositories文件内容
repositories文件跟*.repo文件一样
http://mirrors.aliyun.com/alpine/v3.11/main
http://mirrors.aliyun.com/alpine/v3.11/community
- dockerfile文件内容
#dockerfile is git-base image
FROM alpine:3.11
LABEL mail=timerovers@163.com
ARG v=3.11
COPY repositories /etc/apk/repositories
#更新源以及基本配置
RUN apk update \
#设置Docker 时间为上海时区
&& apk add -U tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/shanghai" >> /etc/timezone \
#安装基础命令并清除缓存
&& apk add --no-cache vim psmisc curl openssh-client busybox-extras \
&& apk add --no-cache git \
&& rm -rf /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache
# 这里添加top命令是为了方便本地测试,防止启动该基本镜像容器后自动运行停止
ENTRYPOINT ["/bin/sh"]
- 查看alpine基础镜像大小
[root@localhost alpine]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
git-base 2.24.4 f191f9beeeb0 About a minute ago 55.8MB