從零搭建docker私有倉庫的步驟
實驗環(huán)境:
- centos7 64位
- ubuntu16.04 64位(用于測試私有倉庫)
本文分為四個部分:
第一部分: 安裝docker
第二部分: 鏡像的操作
第三部分: 容器的操作
第四部分: 私有倉庫的創(chuàng)建
第一部分: 安裝docker
# 通過yum源安裝docker sudo yum -y install docker # 啟動docker sudo systemctl start docker # 開機(jī)自啟 sudo systemctl enable docker

第二部分: 鏡像的操作
查找并下載docker鏡像(以centos為例)
# 查找centos鏡像 docker search centos # 下載centos鏡像 sudo docker pull docker.io/centos:latest

列出鏡像
sudo docker image ls
刪除鏡像
sudo docker image rm 4655e9997674

第三部分: 容器的操作
創(chuàng)建容器并進(jìn)入
sudo docker run -t -i --name zhaoolee-centos docker.io/centos:latest /bin/bash
參數(shù)說明: -t分配一個偽終端并綁定到容器的標(biāo)準(zhǔn)輸入,-i 讓容器的標(biāo)準(zhǔn)輸入保持打開

查看所有容器
sudo docker ps -a
啟動容器
sudo docker start zhaoolee-centos
查看當(dāng)前運行的容器
sudo docker ps
停止容器
sudo docker stop zhaoolee-centos

進(jìn)入容器環(huán)境
sudo docker attach zhaoolee-centos

向容器內(nèi)部發(fā)送指令
我們可以在不進(jìn)入容器環(huán)境的情況下, 向容器內(nèi)部發(fā)送指令
sudo docker exec zhaoolee-centos touch 123.txt

刪除容器
將容器停止后, 可以刪除容器
sudo docker rm zhaoolee-centos

(選學(xué))docker高級命令
交換文件 docker cp
通過docker cp命令, 可以實現(xiàn)容器與外部環(huán)境的文件交換
我們在docker容器內(nèi)部新建一個123.txt文件, 將它拷貝到外部環(huán)境, 在外部環(huán)境新建一個456.txt拷貝到docker容器內(nèi)部(如下圖)

即使容器處于未激活狀態(tài), 也是可以進(jìn)行文件交換的
將修改后的容器發(fā)布為鏡像
# 將修改后的容器發(fā)布為鏡像, `-a`表示作者, `-m`表示對本次修改的說明 sudo docker commit -a "zhaoolee" -m "add 123.txt 456.txt" zhaoolee-centos zhaoolee-centos:0.1 # 基于新建的鏡像創(chuàng)建容器 sudo docker run -t -i --name my-centos zhaoolee-centos:0.1 /bin/bash

查看鏡像的信息
# 查看剛剛新建的鏡像信息 sudo docker history zhaoolee-centos:0.1

查看容器內(nèi)變動日志
sudo docker diff zhaoolee-centos

查看鏡像和容器的詳細(xì)信息
# 查看鏡像的詳細(xì)信息 sudo docker inspect zhaoolee-centos:0.1 # 查看容器的詳細(xì)信息 sudo docker inspect zhaoolee-centos


第四部分: 私有倉庫的創(chuàng)建
1. 下載私有倉庫注冊服務(wù)器的鏡像
sudo docker pull registry:latest

2. 創(chuàng)建一個注冊服務(wù)器容器
sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry docker.io/registry:latest
參數(shù)說明 -d容器在后端運行, -p 5000:5000在容器的5000端口運行并映射到外部系統(tǒng)的5000端口, --name server-registry容器命名為server-registry, -v /tmp/registry /tmp/registry把宿主機(jī)的目錄/tmp/registry掛載到容器目錄/tmp/registry
3. 為本地鏡像添加標(biāo)簽,并將其歸入本地倉庫
為本地鏡像添加標(biāo)簽
sudo docker tag zhaoolee-centos:0.1 localhost:5000/zhaoolee-centos:0.1
將被標(biāo)記的本地鏡像, push到倉庫
sudo docker push localhost:5000/zhaoolee-centos:0.1

4.測試本地倉庫的的可用性
在虛擬機(jī)內(nèi)網(wǎng),開啟另一臺ubuntu16.04虛擬機(jī), unbutu16.04嘗試從centos7獲取剛剛創(chuàng)建的鏡像zhaoolee-centos:0.1

sudo docker pull 192.168.214.156:5000/zhaoolee-centos:0.1

# 解決安裝過程中的問題:解決: Error response from daemon: Get https://192.168.214.156:5000/v2/: http: server gave HTTP response to HTTPS client
echo '{ "insecure-registries":["192.168.214.156:5000"] }' > /etc/docker/daemon.json
docker作為一種新興的虛擬化方式,無論是執(zhí)行速度、內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效, docker本身支持類似git的操作, 讓應(yīng)用的迭代部署更為簡單高效, 對于一些依賴非常復(fù)雜的應(yīng)用, 我們可以直接下載它的docker版本, 開箱即用, 省時省力, 同時為運維人員創(chuàng)造了更多偷懶的機(jī)會~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker與docker-compose中volume參數(shù)的使用方式
文章介紹了Docker中的數(shù)據(jù)卷Volume的概念及其在宿主機(jī)和容器之間的數(shù)據(jù)共享和持久化,它詳細(xì)說明了兩種數(shù)據(jù)掛載方式:通過宿主機(jī)絕對路徑掛載和通過卷標(biāo)映射掛載,包括匿名掛載和具名掛載,同時,文章還展示了如何通過docker命令查看數(shù)據(jù)卷的宿主機(jī)目錄2024-11-11
基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn)
這篇文章主要介紹了基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
Docker使用Git實現(xiàn)Jenkins發(fā)布、測試項目的詳細(xì)流程
這篇文章主要介紹了Docker使用Git實現(xiàn)Jenkins發(fā)布、測試項目的詳細(xì)流程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解
這篇文章主要介紹了Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解的相關(guān)資料,需要的朋友可以參考下2022-10-10
Docker部署java項目的詳細(xì)步驟(利用Dockerfile方式)
docker可以利用簡單的編寫程序構(gòu)建出任何你想要的環(huán)境,同時可以跟業(yè)務(wù)代碼相結(jié)合,快速構(gòu)建和生成所需要的應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Docker部署java項目的詳細(xì)步驟,本文主要利用的是Dockerfile方式,需要的朋友可以參考下2022-08-08
iptables如何限制宿主機(jī)跟Docker IP和端口訪問(安全整改)
本文詳細(xì)介紹了如何通過iptables對網(wǎng)絡(luò)訪問進(jìn)行限制,包括限制特定IP或網(wǎng)段訪問特定服務(wù),以及在Docker環(huán)境下,如何設(shè)置DOCKER-USER鏈限制IP和端口訪問,確保網(wǎng)絡(luò)安全2024-10-10

