docker容器技術(shù)

Docker概述

? ??Docker是一個(gè)開源的應(yīng)用容器引擎,開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,可以直接使用該鏡像做容器做底層的封裝。

????docker是一套完整的容器管理系統(tǒng)。

????docker提供了一組命令,讓用戶更加方便直接的使用容器技術(shù),而不需要過多關(guān)心底層內(nèi)核技術(shù)。

? ??Namespace(命名空間)——實(shí)現(xiàn)容器內(nèi)的用戶、進(jìn)程、網(wǎng)絡(luò)、消息、文件系統(tǒng)和主機(jī)名的隔離。

? ??Cgroup——實(shí)現(xiàn)對(duì)資源的分配,可以指定實(shí)例使用的cpu個(gè)數(shù),內(nèi)存大小等。

安裝docker

? ? yum -y install docker && systemctl restart docker

鏡像操作:

? ? 裝完可以搜索鏡像,可以直接搜索云上的鏡像(nginx、httpd等)

? ??docker search centos? ? ? ?// 搜索鏡像,需聯(lián)網(wǎng)操作

????docker images //查看本地鏡像

????docker history docker.io/busybox //查看鏡像制作歷史

????docker inspect docker.io/busybox //查看鏡像底層信息

????docker pull docker.io/centos????//下載鏡像

????docker push 鏡像名? ? //上傳鏡像,一般不常用

????docker rmi????? //刪除本地鏡像,rmimage的意思

????docker save docker.io/busybox:latest -o busybox.tar //導(dǎo)出鏡像備份為tar包

????rsync -av busybox.tar 192.168.1.2:./? //rsync同步到另一臺(tái)機(jī)器

????docker load -i busybox.tar? //導(dǎo)入tar鏡像

????docker tag docker.io/busybox:latest oo:xx? 修改鏡像名稱和標(biāo)簽,相當(dāng)于添加一個(gè)軟鏈接


容器操作:

? ??docker run -itd docker.io/centos //運(yùn)行容器,-it啟動(dòng)容器,-d為后臺(tái)運(yùn)行容器

????docker ps -a? //查看容器列表,-a查看全部,-q只看容器id

????docker start f2c775ebfc47? //啟動(dòng)容器

????docker restart //重啟容器

????docker stop //關(guān)閉容器

????docker inspect 7e1b0f46cbb6????//查看容器底層信息

????docker top //查看容器進(jìn)程列表

????docker rm???? //刪除容器//需要關(guān)閉容器才可以刪除

????docker attach ????//進(jìn)入容器,但exit容器會(huì)自動(dòng)停止

????docker exec -it //進(jìn)入容器,一般使用這個(gè)

????docker run --name nginx-test -p 8080:80 -d nginx ????//運(yùn)行nignx程序容器


自定義鏡像:

? ??docker run -it docker.io/centos//啟動(dòng)容器,安裝添加的服務(wù)或者包

????docker commit a7b myos:latest? //然后ps -a找到容器id,使用commit命令自定義一個(gè)新的鏡像

????docker images //查看鏡像


Dockerfile:

? ??Dockfile相當(dāng)于是docker的腳本,將docker命令直接寫到Dockfile文件中統(tǒng)一執(zhí)行,生成定制的image,有額外的需求時(shí),只需在Dockerfile上添加或者修改指令即可。

Dockerfile寫法

FROM? //指定基礎(chǔ)鏡像

EXPOSE ????//開放的端口

ENV ????// 設(shè)置變量

ADD ????// 復(fù)制文件到鏡像

RUN ????// 制作鏡像時(shí)執(zhí)行的命令,可以有多個(gè)

WORKDIR ????//定義容器默認(rèn)工作目錄

CMD ????// 容器啟動(dòng)時(shí)執(zhí)行的命令,僅可以有一條


創(chuàng)建一個(gè)Dockerfile文件,簡單裝幾個(gè)包

mkdir -p /tmp/Dockerfile

vim??/tmp/Dockerfile? ??

FROM docker.io/centos:latest????

RUN yum repolist

RUN yum -y install vim net-tools psmisc iproute

然后執(zhí)行下面命令

docker build -t test:latest /opt/dockerfile/? //運(yùn)行dockerfile文件

查看結(jié)果

docker run -itd test:latest

docker exec -it d5bddf9de1b7 /bin/bash

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容