實驗環(huán)境:
- centos7 64位
- ubuntu16.04 64位(用于測試私有倉庫)
本文分為四個部分:
第一部分: 安裝docker
第二部分: 鏡像的操作
第三部分: 容器的操作
第四部分: 私有倉庫的創(chuàng)建
第一部分: 安裝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 rm 4655e9997674

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

查看所有容器
啟動容器
sudo docker start zhaoolee-centos
查看當前運行的容器
停止容器
sudo docker stop zhaoolee-centos

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

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

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

(選學)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), 也是可以進行文件交換的
將修改后的容器發(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

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


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

2. 創(chuàng)建一個注冊服務器容器
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把宿主機的目錄/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.測試本地倉庫的的可用性
在虛擬機內(nèi)網(wǎng),開啟另一臺ubuntu16.04虛擬機, 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)虛擬機技術(shù)更高效, docker本身支持類似git的操作, 讓應用的迭代部署更為簡單高效, 對于一些依賴非常復雜的應用, 我們可以直接下載它的docker版本, 開箱即用, 省時省力, 同時為運維人員創(chuàng)造了更多偷懶的機會~
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。