實驗環境:
- centos7 64位
- ubuntu16.04 64位(用于測試私有倉庫)
本文分為四個部分:
- 第一部分: 安裝docker
- 第二部分: 鏡像的操作
- 第三部分: 容器的操作
- 第四部分: 私有倉庫的建立
# 通過yum源安裝docker
sudo yum -y install docker
# 啟動docker
sudo systemctl start docker
# 開機自啟
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
建立容器并進入
sudo docker run -t -i --name zhaoolee-centos docker.io/centos:latest /bin/bash
參數說明:配置設定一個僞終端并綁定到容器的标準輸入,
-t
讓容器的标準輸入保持打開
-i
檢視所有容器
sudo docker ps -a
啟動容器
sudo docker start zhaoolee-centos
檢視目前運作的容器
sudo docker ps
停止容器
sudo docker stop zhaoolee-centos
進入容器環境
sudo docker attach zhaoolee-centos
## 其它方法
sudo docker exec -it 775c7c9ee1e1 /bin/bash
向容器内部發送指令
我們可以在不進入容器環境的情況下, 向容器内部發送指令
sudo docker exec zhaoolee-centos touch 123.txt
删除容器
将容器停止後, 可以删除容器
sudo docker rm zhaoolee-centos
(選學)docker進階指令
交換檔案 docker cp
docker cp
通過
docker cp
指令, 可以實作容器與外部環境的檔案交換
我們在docker容器内部建立一個
檔案, 将它拷貝到外部環境, 在外部環境建立一個456.txt拷貝到docker容器内部(如下圖)
123.txt
- 即使容器處于未激活狀态, 也是可以進行檔案交換的
将修改後的容器釋出為鏡像
# 将修改後的容器釋出為鏡像, `-a`表示作者, `-m`表示對本次修改的說明
sudo docker commit -a "zhaoolee" -m "add 123.txt 456.txt" zhaoolee-centos zhaoolee-centos:0.1
# 基于建立的鏡像建立容器
sudo docker run -t -i --name my-centos zhaoolee-centos:0.1 /bin/bash
檢視鏡像的資訊
# 檢視剛剛建立的鏡像資訊
sudo docker history zhaoolee-centos:0.1
檢視容器内變動日志
sudo docker diff zhaoolee-centos
檢視鏡像和容器的詳細資訊
# 檢視鏡像的詳細資訊
sudo docker inspect zhaoolee-centos:0.1
# 檢視容器的詳細資訊
sudo docker inspect zhaoolee-centos
1. 下載下傳私有倉庫注冊伺服器的鏡像
sudo docker pull registry:latest
2. 建立一個注冊伺服器容器
sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry docker.io/registry:latest
參數說明容器在後端運作,
-d
在容器的5000端口運作并映射到外部系統的5000端口,
-p 5000:5000
容器命名為server-registry,
--name server-registry
把主控端的目錄/tmp/registry挂載到容器目錄/tmp/registry
-v /tmp/registry /tmp/registry
3. 為本地鏡像添加标簽,并将其歸入本地倉庫
- 為本地鏡像添加标簽
sudo docker tag zhaoolee-centos:0.1 localhost:5000/zhaoolee-centos:0.1
- 将被标記的本地鏡像, push到倉庫
sudo docker push localhost:5000/zhaoolee-centos:0.1
4.測試本地倉庫的的可用性
在虛拟機内網,開啟另一台ubuntu16.04虛拟機, unbutu16.04嘗試從centos7擷取剛剛建立的鏡像 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作為一種新興的虛拟化方式,無論是執行速度、記憶體損耗或者檔案存儲速度,都要比傳統虛拟機技術更高效, docker本身支援類似git的操作, 讓應用的疊代部署更為簡單高效, 對于一些依賴非常複雜的應用, 我們可以直接下載下傳它的docker版本, 開箱即用, 省時省力, 同時為運維人員創造了更多偷懶的機會~
看到這裡, 你已經了解了docker常用的功能,如果想用docker實戰一下, 比如搭建一個屬于自己的git站點, 可以繼續閱讀
用gogs搭建屬于自己的git網站