(一)docker介紹html
1.什麼是Dokcer?mysql
1.一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的Linux 機器上,也能夠實現虛擬化。容器是徹底使用沙箱機制,相互之間不會有任何接口;
2.go語言編寫,在LCX(linux容器)基礎上進行的封裝
2.簡單來講: linux
1)就是能夠快速部署啓動應用 2)實現虛擬化,完整資源隔離 3)一次編寫,四處運行(有必定的限制,好比Docker是基於Linux 64bit的,沒法在32bit的linux/Windows/unix環境下使用)
三、爲何要用docker?nginx
1、提供一次性的環境,假如須要安裝Mysql,則須要安裝不少依賴庫、版本等,若是使用Docker則經過鏡像就能夠直接啓動運行
2、快速動態擴容,使用docker部署了一個應用,能夠製做成鏡像,而後經過Dokcer快速啓動
3、組建微服務架構,能夠在一個機器上模擬出多個微服務,啓動多個應用
4、更好的資源隔離和共享
一句話:開箱即用,快速部署,可移植性強,環境隔離spring
(二)docker核心知識sql
四、Docker倉庫、鏡像、容器
Docker 鏡像 - Docker images:docker
容器運行時的只讀模板,操做系統+軟件運行環境+用戶程序
比如一個類:
Docker 容器 - Docker containers:安全
容器包含了某個應用運行所須要的所有環境
比如一個類new出來的對象
Docker 倉庫 - Docker registeries: springboot
用來保存鏡像,有公有和私有倉庫,咱們能夠從倉庫下載咱們須要的鏡像
比如Maven的中央倉庫和本地私服
參考)配置國內鏡像倉庫:https://blog.csdn.net/zzy1078689276/article/details/77371782服務器
(三)Docker容器常見命令
雲服務器安裝文檔:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY
一、 經常使用命令(安裝部署好Dokcer後,執行的命令是docker開頭),xxx是鏡像名稱
1.搜索鏡像:docker search xxx
如:rabbitmq:management
2.列出當前系統存在的鏡像:docker images
3.拉取鏡像:docker pull xxx xxx是具體某個鏡像名稱(格式 REPOSITORY:TAG) REPOSITORY:表示鏡像的倉庫源,TAG:鏡像的標籤
如:rabbitmq:management
4.運行一個容器:docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management docker run - 運行一個容器 -d 後臺運行 -p 端口映射 rabbitmq:management (格式 REPOSITORY:TAG),若是不指定tag,默認使用最新的 --name "xxx"
5.列舉當前運行的容器:docker ps 或者 docker ps -n 5
6.檢查容器內部信息:docker inspect 容器名稱
7.刪除鏡像:docker rmi IMAGE_ID
強制移除鏡像無論是否有容器使用該鏡像 增長 -f 參數,
docker rmi -f IMAGE_ID
8.中止某個容器:docker stop 容器名稱(或ID)
9.啓動某個容器:docker start 容器名稱(或ID)
10.移除某個容器: docker rm 容器名稱 (容器必須是中止狀態)
文檔:
http://www.javashuo.com/article/p-bburmtsv-eo.html
(四)Docker部署Nginx服務器實戰
0、先跑一下
docker run (首先會從本地找鏡像,若是有則直接啓動,沒有的話,從鏡像倉庫拉起,再啓動)
一、查找鏡像
docker search nignx
二、列舉
docker images
三、拉取
docker pull nignx
三、啓動(能夠多個)
docker run -d --name "xdclass_nginx" -p 8088:80 nginx
docker run -d --name "xdclass_nginx2" -p 8089:80 nginx
docker run -d --name "xdclass_nginx3" -p 8090:80 nginx
四、訪問
若是是阿里雲服務,記得配置安全組,騰訊雲也須要配置,這個就是一個防火牆
服務器訪問端口:
curl "http://127.0.0.1:端口"
curl "http://127.0.0.1:8088"
(五)搭建私有鏡像倉庫
1.阿里雲鏡像倉庫:https://dev.aliyun.com/search.html
二、使用阿里雲私有鏡像倉庫
1)登陸: docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com
2) 推送本地鏡像:
docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:[鏡像版本號]
例子:
docker tag 2f415b0e9a6e registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2
docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2
3)拉取鏡像
線上服務器拉取鏡像:
docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2
啓動容器:
docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e
注意:這些命令都以【管理】裏面的命令爲主,這裏只是演示
docker:
安裝mysql5.6以及如何訪問:https://www.cnblogs.com/areyouready/p/8948552.html
使用docker發佈springboot項目:http://www.javashuo.com/article/p-ysczykst-cc.html