alpine-bash鏡像制作


  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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM