本文測(cè)試環(huán)境:虛擬機(jī) Ubuntu20.04 Docker20
1 修改dockerfile
dockerfile第二行后面加如下內(nèi)容,一鍵換源:
RUN sed -i s:/archive.ubuntu.com:/mirrors.tuna.tsinghua.edu.cn/ubuntu:g /etc/apt/sources.list
RUN cat /etc/apt/sources.list
RUN apt-get clean
RUN apt-get -y update --fix-missing
參考:Docker 容器無法聯(lián)網(wǎng) apt update 失敗 解決
2 修改構(gòu)建選項(xiàng)與主機(jī)共享網(wǎng)絡(luò)
如果換了源還是沒網(wǎng)絡(luò),可以嘗試使docker和主機(jī)的網(wǎng)絡(luò)共享。
注意,build和run時(shí)共享網(wǎng)絡(luò)時(shí)添加的參數(shù)是不一致的。并且,如果在build時(shí)添加了參數(shù)、但在run時(shí)沒添加,那么創(chuàng)建的容器的網(wǎng)絡(luò)還是不會(huì)與主機(jī)共享;同理,在run時(shí)添加、在build時(shí)沒添加,那么創(chuàng)建的容器會(huì)與主機(jī)共享,但是build image的過程中的網(wǎng)絡(luò)不會(huì)與主機(jī)共享。
添加的具體方式如下。
- build的時(shí)候:添加
--network=host
參數(shù):
sudo -S docker build --network=host -t 【image的名字】 .
其中【image的名字】是自定義的,build的時(shí)候會(huì)根據(jù)參數(shù)所在的文件夾(例如sudo -S docker build --network=host -t 【image的名字】 .
的參數(shù)是.
,即當(dāng)前目錄)下的dockerfile
生成image。
- run的時(shí)候:添加
--net=host
參數(shù):
sudo docker run --net=host -it 【image的名字】 /bin/bash
其中【image的名字】是現(xiàn)有的image,可以通過sudo docker images
查看所有的image的名字,然后從中選一個(gè),去run。run的時(shí)候會(huì)基于image
生成一個(gè)容器container。
加了net=host
后會(huì)使得創(chuàng)建的容器與主機(jī)共享網(wǎng)絡(luò),在進(jìn)入命令行時(shí)名稱顯示為主機(jī)的名稱而不是一串id,如root@shan:/#
。文章來源:http://www.zghlxwxcb.cn/news/detail-538726.html
參考:文章來源地址http://www.zghlxwxcb.cn/news/detail-538726.html
- Docker——容器內(nèi) apt-get update失敗解決辦法
- Docker—— --net=host參數(shù)改變?nèi)萜骶W(wǎng)絡(luò)模式
- docker build以及docker run時(shí)使用host網(wǎng)絡(luò)的方法
到了這里,關(guān)于【記錄】Docker|Ubuntu Docker 修改dockerfile換源、主機(jī)共享網(wǎng)絡(luò)解決apt update 失敗的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!