alpine輕量級基於busybox的發行版,特別適合基於docker的base images.
特點:
small、simple、secure
官方地址:
https://alpinelinux.org/ //官方發行版本
https://pkgs.alpinelinux.org/packages?name=&branch=edge //apk package
http://dl-cdn.alpinelinux.org/
在hub.docker.com官方倉庫中默認shell是sh,我還是必須喜歡bash
https://hub.docker.com/_/alpine
http://dl-cdn.alpinelinux.org/alpine/ ###鏡像庫
###/etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/v3.11/main
http://dl-cdn.alpinelinux.org/alpine/v3.11/community
###替換國內TUNA源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
思路概述:
1、安裝bash相關pkg
2、修改root賬戶默認shell
3、修改登錄shell后的光標欄(PS1)
4、覆蓋默認進去shell(sh-->bash)
構建步驟:
Dockerfile
FROM alpine:3.7 MAINTAINER mvpbang mvpbang@qq.com ###alpine+bash ADD .bashrc /root/ RUN set -x \ apk update \ && apk add --no-cache bash bash-doc bash-completion \ && sed -i 's/ash/bash/g' /etc/passwd \ && source /root/.bashrc CMD ["/bin/bash"]
.bashrc
export HISTTIMEFORMAT="%d/%m/%y %T " export PS1='\u@\h:\W \$ ' alias ll='ls -alF' alias ls='ls --color=auto' source /etc/profile.d/bash_completion.sh
構建鏡像
docker build -t alpine:v1 .
[root@mvp-dd tmp]# docker run --rm -it alpine:v1 root@522065c46217:/ # root@522065c46217:/ # root@522065c46217:/ # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever
注意:由於默認容器啟動執行的 /bin/bash,如果引用此鏡像未在啟動 -it,容器啟動完畢后自動退出(no process stop)