前沿
Docker是通過(guò)內(nèi)核虛擬技術(shù)(namespaces及cgroups等)來(lái)提供容器的資源隔離與安全保障等。由于Docker通過(guò)操作系統(tǒng)層的虛擬實(shí)現(xiàn)隔離逸寓,所以Docker容器在運(yùn)行時(shí)俄周,不需要類似虛擬機(jī)(VM)額外的操作系統(tǒng)開(kāi)銷驴剔,提高資源利用率碟刺。
1 使用yum安裝
1.1 安裝所需的軟件包。yum-utils提供yum-config-manager實(shí)用工具除抛,device-mapper-persistent-data和lvm2是由devicemapper存儲(chǔ)驅(qū)動(dòng)程序爹凹。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
1.2 鑒于國(guó)內(nèi)網(wǎng)絡(luò)問(wèn)題,使用鏡像源來(lái)安裝
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 可選安裝
如果需要最新版本的Docker-CE
sudo yum-config-manager --enable docker-ce-edge
若要禁用
sudo yum-config-manager --disable docker-ce-edge
如果需要測(cè)試版本的Docker-CE
sudo yum-config-manager --enable docker-ce-test
當(dāng)然镶殷,你也可以直接修改配置文件/etc/yum.repos.d/docker-ce.repo進(jìn)行定制版本的安裝
1.4 更新yun軟件源緩存并安裝docker-ce
sudo yum makecache fast
sudo yum install docker-ce
1.5 啟動(dòng)docker-ce
sudo systemctl enable docker #設(shè)置開(kāi)機(jī)自啟
sudo systemctl start docker #啟動(dòng)服務(wù)
1.6 添加組和用戶
默認(rèn)情況下禾酱,docker命令會(huì)使用Unix socket與Docker引擎通訊。而只有root用戶和docker組的用戶才可以訪問(wèn)Docker引擎的Unix socket。出于安全考慮颤陶,一般Linux上不會(huì)直接使用root用戶颗管,因此需要將使用docker的用戶添加到docker用戶組中。
sudo groupadd docker
sudo usermod -aG docker wqq
1.7 測(cè)試Docker是否安裝成功
退出當(dāng)前終端并重新登錄滓走, 進(jìn)行如下測(cè)試垦江。
docker run hello-world
出現(xiàn)這個(gè)界面說(shuō)明安裝成功
參考文檔:
2 鏡像加速器
使用配置文件 /etc/docker/daemon.json(沒(méi)有時(shí)新建該文件)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["<your accelerate address>"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
"<your accelerate address>",這是你自己在鏈接中生成的專屬加速器地址搅方,之后用docker pull拉取鏡像比吭,速度就會(huì)非常快
3 常用操作
docker pull nginx
docker image ls
docker run --name webserver -d -p 80:80 nginx #此時(shí)可以訪問(wèn)IP:80
docker container ls
docker exec -it webserver bash #docker exec 進(jìn)入容器
echo '<h1>Hello,Docker!</h1>'>/usr/share/nginx/html/index.html #訪問(wèn)IP:80
exit
docker diff webserver
docker commit -a wqq -m "修改了默認(rèn)網(wǎng)頁(yè)" webserver nginx:v2
docker image ls
docker history nginx:v2
docker run --name web2 -d -p 81:80 nginx:v2
docker container ls
mkdir mynginx
cd mynginx
vi Dockerfile
docker build -t nginx:v3 .
docker run -it --name web3 -d -p 83:80 nginx:v3
docker container ls
此時(shí)訪問(wèn)ip:80姨涡,ip:81衩藤,ip:83
4 遷移鏡像
刪除以鏡像nginx:v3創(chuàng)建的容器
docker container stop web3
docker container rm web3
保存鏡像
docker save nginx:v3 | gzip >nginx-v3.tar.gz
將nginx-v3.tar.gz文件復(fù)制到另一個(gè)機(jī)器上(由于這里只有一臺(tái)機(jī)器,為了實(shí)驗(yàn)涛漂,先刪除原有鏡像nginx:v3赏表,然后加載鏡像)
docker image rm nginx:v3
docker image ls
docker load -i nginx-v3.tar.gz
docker image ls
docker run -it --name web3 -d -p 83:80 nginx:v3