1. 安裝Docker
Docker開源的容器引擎,可以讓開發者打包應用以及依賴的庫,然後發佈到任何流行的linux發行版上,移植很方便;
由go語言編寫,基於apache2.0協議發佈;
基於linux kernel,要想在win下運行需要藉助一個vm(虛擬機)來實現;
自2013年開始,近些年發展迅猛;
docker從1.13x開始,版本分爲社區版ce和企業版ee,並且基於年月的時間線形式;
優點:
啓動非常快,秒級實現
資源利用率高,一臺高配置服務器可以跑上千個docker容器
更快的交付和部署,一次創建和配置後,可以在任意地方運行
內核級別的虛擬化,不需要額外的hypevisor支持,會有更高的性能和效率
易遷移,平臺依賴性不強
yum安裝
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo
yum install -y docker-ce
速度比較慢,大家也可以直接下載rpm包
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
下載完,上傳到linux下
也需要用yum安裝,可以自動解決依賴關係
yum install -y docker-ce-xxxx.rpm
啓動docker
systemctl start docker
查看進程
ps aux | grep docker
自動生成的規則
保存規則:service docker save
iptables -t nat -F 清除規則
重啓docker 服務後規則又出自動添加。
2. 鏡像管理
docker pull centos//可以下載centos鏡像,速度很慢
配置docker加速器
(參考 http://blog.csdn.net/xlemonok/article/details/71403534)
vi /etc/docker/daemon.json
#加入如下內容
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
說明:這個url爲加速器地址,需要同學們自行到阿里雲申請
配置完加速器,重啓docker服務,再次docker pull centos會快很多
查看本地的鏡像
docker images
搜索鏡像
docker search ubuntu
其中ubuntu是關鍵詞
給鏡像打標籤
docker tag centos fxq123
dokcker tag centos fxqtestos:20180201
把鏡像啓動爲容器
docker run -itd centos
//把鏡像啓動爲容器,-i表示讓容器的標準輸入打開,-t表示分配一個僞終端,-d表示後臺啓動,要把-i -t -d 放到鏡像名字前面
查看運行的容器
docker ps
查看運行的容器
docker ps -a
加上-a選項後可以查看所有容器,包括未運行的
刪除指定鏡像
docker rmi centos
docker rmi fxqtestos:20180201
//用來刪除指定鏡像, 其中後面的參數可以是tag,如果是tag時,實際上是刪除該tag。當後面的參數爲鏡像ID時,則會徹底刪除整個鏡像,所有標籤也會一同刪除
3. 通過容器創建鏡像
啓動容器
docker run -itd centos /bin/bash
docker run啓動容器後,可以通過下面命令進入容器
進入容器
docker exec -it 992c3e4 bash
//其中992c3e4爲容器id,這個id可以用docker ps查看,最後面的bash爲進入容器後我們要執行的命令,這樣就可以打開一個終端
docker start 992c3e4
docker attach 992c3e4
提交容器生成新的鏡像
進入該容器中,我們做一些變更,比如安裝一些東西,然後針對這個容器進行創建新的鏡像
在容器中執行 yum install -y net-tools,然後ctrl d退出容器
docker commit -m "install net-tools" -a "fxq" c901ab1c8028 centos-net
//c901ab1c8028 容器ID通過docker ps -a獲取,後面的centos-net爲新鏡像名字
例如: docker commit -m "install net-tools" -a "fxq" 2c74d574293f centos_with_nettool 這個命令有點像svn的提交,-m 加一些改動信息,-a 指定作者相關信息 2c74d這一串爲容器id,再後面爲新鏡像的名字