前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker基于Alpine Linux构建镜像

docker基于Alpine Linux构建镜像

作者头像
py3study
发布2018-08-02 15:50:15
6.1K1
发布2018-08-02 15:50:15
举报
文章被收录于专栏:python3

Alpine Linux,一个只有5M的Docker镜像。是一个面向安全的轻型Linux发行版。不同于通常Linux发行版,Alpine Linux采用了musl libc和busybox以减小系统的体积和运行时资源消耗。在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。

普通的ubuntu镜像有100多M,所以想打包更小的镜像,那么Alpine是再适合不过了

下载alpine镜像

代码语言:javascript
复制
# docker pull alpine

Using default tag: latest

Trying to pull repository docker.io/library/alpine ...

latest: Pulling from docker.io/library/alpine

ff3a5c916c92: Pull complete

Digest: sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0

查看本地镜像

代码语言:javascript
复制
# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker.io/alpine    latest              3fd9065eaf02        2 days ago          4.143 MB

使用alpine镜像启动一个容器,默认alpine没有bash,所以只能用sh

代码语言:javascript
复制
# docker run -it docker.io/alpine sh
代码语言:javascript
复制
/ #

更新软件

代码语言:javascript
复制
/ # vi /etc/apk/repositories

注释掉默认的,改为阿里云的更新源,内容如下:

代码语言:javascript
复制
#http://dl-cdn.alpinelinux.org/alpine/v3.7/main
#http://dl-cdn.alpinelinux.org/alpine/v3.7/community
#aliyun
https://mirrors.aliyun.com/alpine/v3.6/main/
https://mirrors.aliyun.com/alpine/v3.6/community/

更新软件

代码语言:javascript
复制
/ # apk update

fetch https://mirrors.aliyun.com/alpine/v3.6/main/x86_64/APKINDEX.tar.gz

fetch https://mirrors.aliyun.com/alpine/v3.6/community/x86_64/APKINDEX.tar.gz

v3.6.2-243-g9d95c23115 [https://mirrors.aliyun.com/alpine/v3.6/main/]

v3.6.2-242-g41c32d5e5e [https://mirrors.aliyun.com/alpine/v3.6/community/]

OK: 8448 distinct packages available

安装vim和bash

代码语言:javascript
复制
/ # apk add vim bash

退出当前容器

代码语言:javascript
复制
/ # exit

下面介绍使用Dockerfile来打包镜像,这也是Docker官方推荐的做法

代码语言:javascript
复制
# mkdir -p /docker/images/test
# vim /docker/images/test/Dockerfile

内容如下:

代码语言:javascript
复制
FROM docker.io/alpine

RUN echo "#aliyun" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" >> /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/community/" >> /etc/apk/repositories
RUN apk update
RUN apk add bash vim

打包镜像

代码语言:javascript
复制
# docker build -t alpine_test /docker/images/test

查看镜像

代码语言:javascript
复制
# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

alpine_test        latest              437a826f6d63        5 seconds ago        32.26 MB

docker.io/alpine    latest              3fd9065eaf02        2 days ago           4.143 MB

使用测试镜像启动容器

代码语言:javascript
复制
# docker run -it alpine_test /bin/bash
代码语言:javascript
复制
bash-4.3#

查看vim版本

代码语言:javascript
复制
bash-4.3# vim -version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled May  1 2017 12:47:09)
Garbage after option argument: "-version"
More info with: "vim -h"
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/01/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档