實(shí)驗(yàn)環(huán)境:
- centos7 64位
- ubuntu16.04 64位(用于測(cè)試私有倉(cāng)庫(kù))
本文分為四個(gè)部分:
第一部分: 安裝docker
第二部分: 鏡像的操作
第三部分: 容器的操作
第四部分: 私有倉(cāng)庫(kù)的創(chuàng)建
第一部分: 安裝docker
# 通過(guò)yum源安裝docker
sudo yum -y install docker
# 啟動(dòng)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 rm 4655e9997674
第三部分: 容器的操作
創(chuàng)建容器并進(jìn)入
sudo docker run -t -i --name zhaoolee-centos docker.io/centos:latest /bin/bash
參數(shù)說(shuō)明: -t分配一個(gè)偽終端并綁定到容器的標(biāo)準(zhǔn)輸入,-i 讓容器的標(biāo)準(zhǔn)輸入保持打開
查看所有容器
啟動(dòng)容器
sudo docker start zhaoolee-centos
查看當(dāng)前運(yùn)行的容器
停止容器
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高級(jí)命令
交換文件 docker cp
通過(guò)docker cp
命令, 可以實(shí)現(xiàn)容器與外部環(huán)境的文件交換
我們?cè)赿ocker容器內(nèi)部新建一個(gè)123.txt
文件, 將它拷貝到外部環(huán)境, 在外部環(huán)境新建一個(gè)456.txt拷貝到docker容器內(nèi)部(如下圖)
即使容器處于未激活狀態(tài), 也是可以進(jìn)行文件交換的
將修改后的容器發(fā)布為鏡像
# 將修改后的容器發(fā)布為鏡像, `-a`表示作者, `-m`表示對(duì)本次修改的說(shuō)明
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)變動(dòng)日志
sudo docker diff zhaoolee-centos
查看鏡像和容器的詳細(xì)信息
# 查看鏡像的詳細(xì)信息
sudo docker inspect zhaoolee-centos:0.1
# 查看容器的詳細(xì)信息
sudo docker inspect zhaoolee-centos
第四部分: 私有倉(cāng)庫(kù)的創(chuàng)建
1. 下載私有倉(cāng)庫(kù)注冊(cè)服務(wù)器的鏡像
sudo docker pull registry:latest
2. 創(chuàng)建一個(gè)注冊(cè)服務(wù)器容器
sudo docker run -d -p 5000:5000 --name server-registry -v /tmp/registry:/tmp/registry docker.io/registry:latest
參數(shù)說(shuō)明 -d容器在后端運(yùn)行, -p 5000:5000在容器的5000端口運(yùn)行并映射到外部系統(tǒng)的5000端口, --name server-registry容器命名為server-registry, -v /tmp/registry /tmp/registry把宿主機(jī)的目錄/tmp/registry掛載到容器目錄/tmp/registry
3. 為本地鏡像添加標(biāo)簽,并將其歸入本地倉(cāng)庫(kù)
為本地鏡像添加標(biāo)簽
sudo docker tag zhaoolee-centos:0.1 localhost:5000/zhaoolee-centos:0.1
將被標(biāo)記的本地鏡像, push到倉(cāng)庫(kù)
sudo docker push localhost:5000/zhaoolee-centos:0.1
4.測(cè)試本地倉(cāng)庫(kù)的的可用性
在虛擬機(jī)內(nèi)網(wǎng),開啟另一臺(tái)ubuntu16.04虛擬機(jī), unbutu16.04嘗試從centos7獲取剛剛創(chuàng)建的鏡像zhaoolee-centos:0.1
sudo docker pull 192.168.214.156:5000/zhaoolee-centos:0.1
# 解決安裝過(guò)程中的問題:解決: 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作為一種新興的虛擬化方式,無(wú)論是執(zhí)行速度、內(nèi)存損耗或者文件存儲(chǔ)速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高效, docker本身支持類似git的操作, 讓應(yīng)用的迭代部署更為簡(jiǎn)單高效, 對(duì)于一些依賴非常復(fù)雜的應(yīng)用, 我們可以直接下載它的docker版本, 開箱即用, 省時(shí)省力, 同時(shí)為運(yùn)維人員創(chuàng)造了更多偷懶的機(jī)會(huì)~
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。