开箱一个docker
開箱一個docker
1、docker 的出現?
1.1、環境切換配置麻煩
通常我們在開發環境寫好代碼,打個war/jar包,扔到tomcat下,就算是跑起來了;
但是扔到生產環境就掛了,what?各種錯誤。。。
1.2、應用之間需要隔離
兩個應用運行在一個服務器上,比如一個PHP,一個.NET。
這兩個應用各種的依賴軟件都安裝在同一個服務器上,可能就會造成各種沖突/無法兼容,這可能調試就非常麻煩了。
docker 就是為解決上方問題出現的,一次封裝,到處運行。
Linux 容器技術的出現解決了這樣的一個問題,而 docker 就是在他的基礎上發展過來的。
將應用運行在 docker 容器上面,而docker 容器在任何操作系統上都是一致的,實現了跨平臺、跨服務器。
只需要一次配置好環境,切換別的機子上就可以一鍵部署好,大大簡化了操作。
假設:開發環境裝了個 redis 3.2 ,運維環境裝了 4.2,可是 3.2 運行沒問題,但是在 4.2 就不好用了,但是既然開發環境裝了 redis 3.2 了,運維就沒必要重復裝了,開發把 redis 打個鏡像,而運維只需要裝個 docker 環境,然后把鏡像一鍵部署即可。
放在以前,我們只需要把代碼扔給運維,讓他去裝軟件,裝不好就啟動不了。
話外語:我的好朋友昆少,作為一個運維,每次都要陪開發加班上線項目,而且往往有些時候竟然是環境引起的,畢竟開發本地用的 windows 環境,部署到 linux 就…
一句話概述:解決了運行環境和配置問題軟件容器,方便做持續集成并有助于整體發布的容器虛擬化技術。
2、能干嗎?
2.1、之前的虛擬機技術:
資源占用多(特別吃內存)、冗余步驟多、啟動慢;
虛擬機是一個連硬件都模擬的,比如打印機等等,是分鐘級別的,而 docker 是秒級別的
2.2、容器虛擬化技術:
由于前面的虛擬器存在這些缺點,linux 發展處另一種虛擬化技術—linux 容器;
不是模擬一個完整的操作系統,而是對進程進行隔離。
有了容器,可以將軟件運行所需要的資源打包一個隔離的容器中,容器與虛擬機不同,不需要捆綁一整套操作系統,只需要軟件工作
所需的庫資源可設置。
docker 和傳統虛擬化方式的不同之處:
2.3、開發/運維
一次構建、隨處運行
更快應用交付和部署、更快升級和擴縮容、更簡單的系統運維、更搞笑的計算資源利用
2.4、企業級
新浪、美團、阿里、京東等
3、去哪下?怎么裝?
docker.com docker-cn.com
官網?no!
3.1、安裝VM
鏈接:https://pan.baidu.com/s/1c20sYm0ziaRyUsotbp0oOg 提取碼:o2m6
3.2、添加docker
鏈接:https://pan.baidu.com/s/1KwJM_mes51cvl0e0kava5Q 提取碼:n34r
解壓鏡像后,直接執行 vmx 后綴的文件。
點擊后,vm 會檢測到運行文件類型,自行添加到 “我的計算機”列表:
執行“開啟此虛擬機”:
注意:需要在服務里開啟 DHCP 服務,該服務用于自動分配 ip,開啟該服務才能給虛擬機分配網絡
用戶名:root 密碼:itcast
?
3.4、docker 啟動容器
systemctl start docker
3.5、運行容器
mysql
docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
--name=數據庫名稱
-p 3306:3306 端口號
MYSQL_ROOT_PASSWORD=密碼
nginx
docker run -p 80:80 --name ngx_demo -d nginx
-p 80:80:將容器的80端口映射到主機的80端口
--name mynginx:將容器命名為mynginx
3.6、部分指令
查看所有的容器:docker images
查看運行:docker ps -a
暫停容器:docker stop 容器id/容器名稱
重新啟動某一個容器:docker start 容器id/容器名稱
?
如果文章有錯的地方歡迎指正,大家互相留言交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:niceyoo
posted @ 2019-05-06 22:20 niceyoo 閱讀(...) 評論(...) 編輯 收藏總結
以上是生活随笔為你收集整理的开箱一个docker的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 底部表格布局TableL
- 下一篇: spring boot 读取 appli