爲什麼Docker?
引用官方定義:Docker是以Docker容器爲資源分割和調度的基本單位,封住整個軟件運行時環境,爲開發者和系統管理員設計的,用於構建、發佈和運行分佈式應用的平臺。他是一個跨平臺、可移植並且簡單易用的容器解決方案。Docker的源代碼託管在GitHub上,基於Go語言開發並遵從Apache 2.0協議。Docker可在容器內部快速自動化地部署應用,並通過操作系統內核技術(namespaces,cgroups等)爲容器提供資源隔離與安全保障。
簡單的理解:Docker是一個新的容器化的技術,它輕巧,且易移植。
Docker解決了那些問題?
1、程序在我這跑得好好的,在你那怎麼就不行呢???
程序在我這跑得好好的,去你那就不行了,這個問題顯然是環境不一致導致的。而在Docker中,Docker image中包含了程序需要的所有的運行時依賴,比如java的程序,那麼image中就必須包含jdk;比如Python的程序,肯定要在image中包含對應版本的Python解釋器。Docker把整個運行時環境打包放到image中,所以搞定了環境依賴問題!
2、系統好卡,肯定是又有哪個哥們寫死循環了!!!
如果一個服務器上面跑着多個項目,其中一個項目狂吃內存和CPU,佔用了太多的系統資源,這就會影響到其他程序的運行。爲了解決這種個問題,虛擬機出現了,做了資源的隔離,不同用戶之間彼此老死不相往來,不會相互的影響。但是虛擬機有缺點:創建速度慢,遷移起來麻煩等等。爲了避免使用這種重量級的虛擬化方案,Docker出現了,Docker利用Linxu內核級的一些隔離方案(Docker通過namespace實現了資源隔離,通過cgroups實現了資源限制)。讓虛擬化變得輕量了起來,創建一個容器就是瞬間的,並且使性能損耗更加的少。
Centos7 Docker安裝
Docker要求Centos系統的內核版本高於3.10,所以安裝Docker之前先使用uname -r命令查看你當前內核的版本是否支持Docker
Linux內核版本
uname -a
使用yum安裝Docker
sudo yum install docker
啓動Docker
service docker start
設置開機啓動docker
systemctl enable docker
查看docker是否安裝成功
docker info
查看docker的配置信息
docker version
查看docker的版本信息
測試運行hello-world
sudo docker run hello-world
卸載Docker
1、卸載docker
sudo yum remove docker
2、刪除殘留文件
卸載Docker時,不會刪除鏡像,容器及數據卷,所以執行下面命令進行刪除。
sudo rm -rf /var/lib/docker
Docker代理設置
1、在/etc/systemd/system/下創建docker.service.d文件夾
mkdir -p /etc/systemd/system/docker.service.d
2、在docker.service.d下創建http-proxy.conf文件
vim /etc/systemd/system/docker.service.d/http-proxy.conf
3、在http-proxy.conf添加環境變量:
4、重啓docker
sudo service docker restart