最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker bashrc文件的合理配置方案詳解

 更新時(shí)間:2025年10月30日 10:53:26   作者:winds~  
本文給大家詳細(xì)介紹docker bashrc文件的合理配置方案詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

docker中ubuntu的bashrc與宿主機(jī)中的bashrc有沒有辦法單獨(dú)控制,現(xiàn)在我的docker中的bashrc使用的是宿主機(jī)的bashrc
之所以出現(xiàn)「容器里的 .bashrc 等于宿主機(jī)的 .bashrc」,通常是因?yàn)榘阉拗鳈C(jī)的 $HOME(甚至直接把 ~/.bashrc)作為 volume 掛進(jìn)了容器。把這個(gè)關(guān)系改掉或加上條件判斷,就能實(shí)現(xiàn)「單獨(dú)控制」。

下面是幾種常見、簡單的方案——按“最干凈 → 最臨時(shí)”的順序排:

方案 A:在鏡像里放一份獨(dú)立的.bashrc(推薦)

構(gòu)建鏡像時(shí)就內(nèi)置容器專用的 .bashrc,并且不要把宿主機(jī)的 $HOME 掛進(jìn)容器。

Dockerfile

FROM ubuntu:24.04
# 可選:裝點(diǎn)補(bǔ)全
RUN apt-get update && apt-get install -y bash-completion && rm -rf /var/lib/apt/lists/*
# 復(fù)制你為容器準(zhǔn)備的 rc(比如放在同目錄的 docker.bashrc)
COPY docker.bashrc /root/.bashrc
SHELL ["/bin/bash", "-lc"]

運(yùn)行容器時(shí)避免掛載宿主機(jī)的 $HOME

docker build -t my-ubuntu .
docker run -it --name u1 my-ubuntu bash

如果你需要非 root 賬號(hào),可以在鏡像里創(chuàng)建用戶并復(fù)制到 /home/<user>/.bashrc。

方案 B:運(yùn)行時(shí)用 volume 顯式覆蓋容器的.bashrc

不改鏡像也可以,用一份專門給容器用的 rc 文件去覆蓋容器里的 ~/.bashrc

# 假設(shè)準(zhǔn)備了一份 /path/to/container.bashrc
docker run -it \
  -v /path/to/container.bashrc:/root/.bashrc:ro \
  ubuntu:24.04 bash

這樣容器永遠(yuǎn)讀你綁定的那份文件,和宿主機(jī)自己的 ~/.bashrc 完全隔離。

docker-compose.yml 示例

services:
  dev:
    image: ubuntu:24.04
    volumes:
      - /path/to/container.bashrc:/root/.bashrc:ro
    command: bash

方案 C:給容器單獨(dú)的 HOME 目錄

有時(shí)你需要把一些代碼目錄掛進(jìn)去,但又不想把宿主機(jī)的 $HOME 帶進(jìn)去。可以給容器指定獨(dú)立的 HOME 與工作目錄:

docker run -it \
  -e HOME=/home/dev -w /home/dev \
  -v /some/project:/work \
  ubuntu:24.04 bash
# 首次進(jìn)入后創(chuàng)建容器專用 rc
cp /etc/skel/.bashrc ~/.bashrc  # 或者自己寫一份

關(guān)鍵點(diǎn)是不要-v $HOME:/root 之類的映射;否則容器會(huì)看到宿主機(jī)的 dotfiles。

方案 D:必須共享同一份文件時(shí),用“容器檢測”分支控制

如果出于某些原因必須把宿主機(jī) ~ 掛進(jìn)去(比如需要同一份 SSH key),那就在這份共享的 .bashrc 里加判斷,讓容器和宿主機(jī)走不同邏輯:

# ~/.bashrc(共享)
is_in_docker=false
if [ -f /.dockerenv ] || grep -qa "docker" /proc/1/cgroup 2>/dev/null; then
  is_in_docker=true
fi
if $is_in_docker; then
  # 容器專用設(shè)置
  export PS1='(ctr) \u@\h:\w\$ '
  alias ll='ls -alF --color=auto'
  # 也可以把容器專用內(nèi)容拆到一個(gè)文件
  [ -f ~/.bashrc.d/docker.rc ] && source ~/.bashrc.d/docker.rc
else
  # 宿主機(jī)專用設(shè)置
  export PS1='\u@\h:\w\$ '
  [ -f ~/.bashrc.d/host.rc ] && source ~/.bashrc.d/host.rc
fi

這樣雖然還是“一份文件”,但邏輯上已經(jīng)做到了“分別控制”。

方案 E:臨時(shí)跳過 rc

只想偶爾進(jìn)入容器不讀任何 rc,可用:

docker exec -it <container> bash --noprofile --norc

快速排查你現(xiàn)在為什么共用.bashrc

看你當(dāng)前的 docker run / compose 配置里是否有類似:

  • -v $HOME:/root-v /home/<user>:/root
  • -v ~/.bashrc:/root/.bashrc

只要存在上述映射,容器就會(huì)用到宿主機(jī)的 rc。刪除或替換掉映射即可。

到此這篇關(guān)于docker bashrc文件的合理配置的文章就介紹到這了,更多相關(guān)docker bashrc文件配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker部署Macvlan實(shí)現(xiàn)跨主機(jī)網(wǎng)絡(luò)通信的實(shí)現(xiàn)

    docker部署Macvlan實(shí)現(xiàn)跨主機(jī)網(wǎng)絡(luò)通信的實(shí)現(xiàn)

    這篇文章主要介紹了docker部署Macvlan實(shí)現(xiàn)跨主機(jī)網(wǎng)絡(luò)通信的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Docker連接宿主Redis的方法步驟

    Docker連接宿主Redis的方法步驟

    本文主要介紹了Docker連接宿主Redis的方法步驟,可以輕松地使用Docker容器與宿主機(jī)上的Redis進(jìn)行交互,實(shí)現(xiàn)高效的數(shù)據(jù)存儲(chǔ)和共享,,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • yum下載docker安裝包安裝到離線機(jī)器的實(shí)例代碼詳解

    yum下載docker安裝包安裝到離線機(jī)器的實(shí)例代碼詳解

    本文通過實(shí)例代碼給大家介紹了yum下載docker安裝包,安裝到離線機(jī)器,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • rocketmq-streams的ILeaseService使用示例詳解

    rocketmq-streams的ILeaseService使用示例詳解

    這篇文章主要為大家介紹了rocketmq-streams的ILeaseService使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 給常用Docker命令起別名的方法詳解

    給常用Docker命令起別名的方法詳解

    在日常使用Docker的過程中,你是否經(jīng)常重復(fù)輸入docker ps、docker images、docker exec -it container_name /bin/bash這類命令,雖然這些命令清晰明確,但頻繁敲打不僅費(fèi)時(shí),還容易因拼寫錯(cuò)誤導(dǎo)致操作失敗所以本文給大家介紹了如何給常用Docker命令起別名
    2025-12-12
  • docker imageid 和 digest區(qū)別解析

    docker imageid 和 digest區(qū)別解析

    在Docker中,image ID和digest是兩個(gè)不同的標(biāo)識(shí)符,用于唯一標(biāo)識(shí)和引用Docker鏡像的不同方面,這篇文章主要介紹了docker imageid 和 digest區(qū)別,需要的朋友可以參考下
    2023-06-06
  • Docker?安裝Jenkins全過程及踩坑指南

    Docker?安裝Jenkins全過程及踩坑指南

    這篇文章主要介紹了Docker?安裝Jenkins?踩坑全指南,本文通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • docker容器的內(nèi)存以及狀態(tài)詳解

    docker容器的內(nèi)存以及狀態(tài)詳解

    通過docker stats獲取容器ID,結(jié)合ps -ef獲取進(jìn)程PID,利用top -p PID分析內(nèi)存占用,用于排查阿里云ECS實(shí)例內(nèi)存過高問題,參考阿里云幫助中心相關(guān)說明進(jìn)行處理
    2025-08-08
  • Dockerfile文件詳細(xì)介紹

    Dockerfile文件詳細(xì)介紹

    Dockerfile 是一個(gè)文本文件,里面包含組裝新鏡像時(shí)用到的基礎(chǔ)鏡像和各種指令。使用dockerfile 文件來定義鏡像,然后運(yùn)行鏡像,啟動(dòng)容器。本文詳細(xì)介紹了Dockerfile文件,感興趣的小伙伴可以參考一下
    2023-04-04
  • Linux中使用Docker構(gòu)建Nginx容器的詳細(xì)攻略

    Linux中使用Docker構(gòu)建Nginx容器的詳細(xì)攻略

    Nginx是一款廣泛使用的高性能 Web 服務(wù)器和反向代理服務(wù)器,適用于各種場景,如靜態(tài)文件服務(wù)、負(fù)載均衡和 API 網(wǎng)關(guān)等,在本教程中,我們將詳細(xì)介紹如何在 Docker 中構(gòu)建并運(yùn)行一個(gè) Nginx 容器,幫助開發(fā)者快速搭建和管理 Nginx 服務(wù),感興趣的朋友跟隨小編一起看看吧
    2025-12-12

最新評(píng)論

彭山县| 永宁县| 保德县| 乌恰县| 通城县| 武邑县| 济源市| 宕昌县| 来安县| 普安县| 敦煌市| 五大连池市| 桐庐县| 乐清市| 霸州市| 巢湖市| 建平县| 明星| 东阳市| 闽侯县| 三明市| 肥东县| 扎兰屯市| 庆元县| 和田市| 垣曲县| 康乐县| 社旗县| 昌邑市| 威远县| 马山县| 内江市| 安庆市| 富平县| 晋江市| 改则县| 德昌县| 揭东县| 平原县| 溧阳市| 长顺县|