打包Linux Docker鏡像
1. 搭建Docker環(huán)境
1.1 Linux環(huán)境下安裝
- 安裝 / 升級(jí)你的Docker客戶端
推薦安裝1.10.0以上版本的Docker客戶端,參考文檔:Docker
- 配置鏡像加速器
如果您要拉取Docker官方的鏡像,請(qǐng)先安裝阿里云提供的Docker官方鏡像加速器:針對(duì)Docker客戶端版本大于1.10.0的用戶。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hd1esep4.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2 Windows & Mac環(huán)境下安裝
- 安裝 / 升級(jí)你的Docker客戶端:
推薦安裝1.10.0以上版本的Docker客戶端,請(qǐng)?jiān)L問(wèn)官網(wǎng)安裝地址Docker(Windows)或者 Docker(Mac)。
- 配置鏡像加速器
如果您要拉取Docker官方的鏡像,請(qǐng)先安裝阿里云提供的Docker官方鏡像加速器:針對(duì)Docker客戶端版本大于1.10.0的用戶。
a) 推薦做法是在創(chuàng)建Linux虛擬機(jī)的時(shí)候,就將加速器的地址配置進(jìn)去。
docker-machine create --engine-registry-mirror=<your accelerate address> -d virtualbox default
docker-machine env default
eval "$(docker-machine env default)"
docker info
b) 如果您已經(jīng)通過(guò)docker-machine創(chuàng)建了虛擬機(jī)的話,則需要通過(guò)登錄機(jī)器修改配置。
- 首先,通過(guò)
docker-machine ssh <machine-name>
登錄虛擬機(jī)。 - 然后,修改
/var/lib/boot2docker/profile
文件,將--registry-mirror=<your accelerate address>
添加到EXTRA_ARGS中。 - 最后,執(zhí)行
sudo /etc/init.d/docker restart
重啟Docker服務(wù)就可以了。
2. 制作Doker鏡像
請(qǐng)參考Docker官方指導(dǎo)文檔,鏈接:
3. 上傳Docker鏡像
登錄阿里云Docker Registry
sudo docker login --username=tb13414881 registry.cn-shanghai.aliyuncs.com
登錄Registry的用戶名是您的阿里云賬號(hào)的全名,密碼是您開(kāi)通服務(wù)時(shí)設(shè)置的密碼。您可以在鏡像管理首頁(yè)修改登錄密碼。
從Registry中拉取鏡像
sudo docker pull [鏡像倉(cāng)庫(kù)地址]:[鏡像版本號(hào)]
將鏡像推送到Registry
sudo docker login --username=tb13414881 registry.cn-shanghai.aliyuncs.com
sudo docker tag [ImageId] [鏡像倉(cāng)庫(kù)地址]:[鏡像版本號(hào)]
sudo docker push [鏡像倉(cāng)庫(kù)地址]:[鏡像版本號(hào)]
請(qǐng)根據(jù)實(shí)際鏡像信息替換示例中的
ImageId
、鏡像倉(cāng)庫(kù)地址
、鏡像版本號(hào)
參數(shù)。選擇合適的鏡像倉(cāng)庫(kù)地址
從ECS推送鏡像時(shí),可以選擇使用鏡像倉(cāng)庫(kù)內(nèi)網(wǎng)地址。推送速度將得到提升并且將不會(huì)損耗您的公網(wǎng)流量。
- 如果您使用的機(jī)器位于經(jīng)典網(wǎng)絡(luò), 請(qǐng)使用 registry-internal.cn-shanghai.aliyuncs.com 作為Registry的域名登錄,并作為鏡像命名空間前綴。
如果您使用的機(jī)器位于VPC網(wǎng)絡(luò),請(qǐng)使用 registry-vpc.cn-shanghai.aliyuncs.com 作為Registry的域名登錄,并作為鏡像命名空間前綴。
示例
使用docker tag
命令重命名鏡像,并將它通過(guò)專(zhuān)有網(wǎng)絡(luò)地址推送至Registry。
sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry-vpc.cn-shanghai.aliyuncs.com 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
sudo docker tag 37bb9c63c8b2 registry-vpc.cn-shanghai.aliyuncs.com:0.7-dfb6816
使用docker images
命令找到鏡像,將該鏡像名稱中的域名部分變更為Registry專(zhuān)有網(wǎng)絡(luò)地址。
sudo docker push registry-vpc.cn-shanghai.aliyuncs.com:0.7-dfb6816