docker是什么
官方文檔入口
在知乎上看到關于docker的思想講的挺好的:如何通俗解釋Docker是什么?。這里直接引用了。
Docker的思想來自于集裝箱,集裝箱解決了什么問題?在一艘大船上,可以把貨物規整的擺放起來。并且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會互相影響。那么我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱里封裝的好好的,那我就可以用一艘大船把他們都運走。
docker就是類似的理念。現在都流行云計算了,云計算就好比大貨輪。docker就是集裝箱。
1.不同的應用程序可能會有不同的應用環境,比如.net開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調試很久,而且很麻煩,還會造成一些沖突。比如IIS和Apache訪問端口沖突。這個時候你就要隔離.net開發的網站和php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。docker可以實現虛擬機隔離應用環境的功能,并且開銷比虛擬機小,小就意味著省錢了。
2.你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。
3.在服務器負載方面,如果你單獨開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來。
總之docker就是集裝箱原理。
centos7安裝docker
使用 yum 安裝(CentOS 7下)
注:Docker 要求 CentOS 系統的內核版本高于 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。
#查看你當前的內核版本uname -r#安裝 Dockersudo yum -y install docker#啟動 Docker 后臺服務sudo service docker start#測試運行 hello-world,由于本地沒有hello-world這個鏡像,所以會下載一個hello-world的鏡像,并在容器內運行。sudo docker run hello-world
使用腳本安裝 Docker
#確保 yum 包更新到最新sudo yum update#執行 Docker 安裝腳本,執行這個腳本會添加 docker.repo 源并安裝 Docker。curl -fsSL https://get.docker.com/ | sh#啟動 Docker 進程sudo service docker start#驗證 docker 是否安裝成功并在容器中執行一個測試的鏡像sudo docker run hello-world
Docker容器基本操作
#運行Ubuntu鏡像,并創建一個交互式的環境sudo docker run -it ubuntu bash#查看運行進程sudo docker ps -a#查看容器鏡像詳細信息sudo docker inspect 容器名<ID or name>#重新啟動開始的容器sudo docker start 容器名#刪除已有容器sudo docker rm 容器名
Docker容器開啟守護式進程
第一種方法:
#進入交互式的環境sudo docker run -it ubuntu bash#按Ctrl+P 和Ctrl+Q退出#查看運行進程sudo docker ps#附加到正在運行的容器sudo docker attach 容器名<ID or name>
第二種方法:
#進入交互式的環境sudo docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"#查看運行進程sudo docker ps#使用日志命令查看正在運行的容器sudo docker logs -tf --tail 0 容器名<ID or name>#查看容器內的進程sudo docker top 容器名#在運行中的容器中運行新的進程sudo docker exec -itd 容器名
Docker容器停止守護式進程
第一種方法:發送命令,等待停止
sudo docker stop 容器名
第二種方法:直接殺死
sudo docker kill 容器名
Docker中部署靜態網站
#新建容器web,設置容器端口映射ip:hostPort:containerPortsudo docker run -p 0.0.0.0:8080:80 --name web -i -t ubuntu bash#進入容器交互環境#更新包apt-get update#安裝nginxapt-get install -y nginx#安裝vimapt-get install -y vim#按Ctrl+P 和Ctrl+Q退出,開啟守護進程#查看守護進程sudo docker ps#查看端口映射sudo docker port web#查看web容器進程情況sudo docker top web#查看web信息,找到容器IPsudo docker inspect web
靜態頁面配置
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答