Docker入門到高級實戰

1、Docker介紹

假如一臺物理機器有128核,多個服務可以同時部署在該機器上,每個服務分配不同的核數,比如電商搞活動的時候,下單服務流量會變大,則可以把用戶服務的核數臨時抽一部分給下單服務,不用去買機器解決這個事;
Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口;
簡單來說就是:

1、可以快速部署啓動應用
2、實現虛擬化,完整資源隔離
3、一次編寫,四處運行(有一定的限制,比如Docker是基於Linux 64bit的,無法在32bit的linux/Windows/unix環境下使用)

2、爲什麼用Docker

  1. 提供一次性的環境,假如需要安裝Mysql,則需要安裝很多依賴庫、版本等,如果使用Docker則通過鏡像就可以直接啓動運行
  2. 快速動態擴容,使用docker部署了一個應用,可以製作成鏡像,然後通過Dokcer快速啓動
  3. 組建微服務架構,可以在一個機器上模擬出多個微服務,啓動多個應用
  4. 更好的資源隔離和共享
    一句話:開箱即用,快速部署,可移植性強,環境隔離

3、Centos7安裝Docker

阿里雲(centos7)安裝Docker手冊:
https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY
安裝yum源:

# yum install epel-release –y
# yum clean all
# yum list

安裝並運行Docker:

# yum install docker-io –y
# systemctl start docker

檢查安裝結果:

# docker info

出現Docker信息
在這裏插入圖片描述
Docker守護進程(後臺進程)管理

# systemctl start docker     #運行Docker守護進程
# systemctl stop docker      #停止Docker守護進程
# systemctl restart docker   #重啓Docker守護進程

其他centos安裝Docker時的一些錯誤解決方式

https://blog.csdn.net/daluguishou/article/details/52080250

4、Docker鏡像、倉庫、容器

鏡像Docker images:

容器運行時的只讀模板,操作系統+軟件運行環境+用戶程序

容器Docker containers:
通過鏡像生成容器

容器包含了某個應用運行所需要的全部環境

倉庫Docker registeries:

用來保存鏡像,有公有和私有倉庫,好比Maven的中央倉庫和本地私服;
Docker中央倉庫:https://hub.docker.com/

三者關係:

對比面向對象的方式
Dokcer 裏面的鏡像 : Java裏面的類 Class   User.class
Docker 裏面的容器 : Java裏面的對象 Object   new出來的user對象
通過類創建對象,通過鏡像創建容器

5、Docker容器常用命令實戰

常用命令(安裝部署好Dokcer後,執行的命令是docker開頭),下邊的xxx指的是鏡像名稱

5.1、搜索、下載(拉取)、刪除鏡像:

docker search xxx

eg:搜索RabbitMQ鏡像

docker search rabbitmq:management

在這裏插入圖片描述
列出當前系統存在的鏡像

docker images

刪除鏡像

#rmi後加 -f 可以強制刪除
docker rmi  IMAGE_NAME

也可以根據ID刪除
在這裏插入圖片描述
拉取鏡像:

# xxx是具體某個鏡像名稱(格式 REPOSITORY:TAG)
docker pull xxx

eg:拉取RabbitMQ鏡像

docker pull rabbitmq:management

在這裏插入圖片描述
這是因爲默認倉庫在國外,我們可以改爲國內倉庫源
vi /etc/docker/daemon.json

{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

國內倉庫地址:

Docker中國區官方鏡像
https://registry.docker-cn.com

網易
http://hub-mirror.c.163.com

中國科技大學
https://docker.mirrors.ustc.edu.cn

阿里雲容器  服務
https://cr.console.aliyun.com/

改了之後重啓docker,重新拉取
在這裏插入圖片描述
下載完成後:
在這裏插入圖片描述

5.2、運行容器

# 運行一個容器:下邊兩種方式都可以
docker run -d  -p 5672:5672 -p 15672:15672 rabbitmq:management
docker run -d --name "maltose" -p 5672:5672 -p 15672:15672 rabbitmq:management
# docker run - 運行一個容器
# -d 後臺運行
# -p 端口映射
# rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默認使用最新的
# --name "xxx"

返回一個id值,即容器ID
在這裏插入圖片描述
查看當前運行的容器

docker ps

在這裏插入圖片描述
在瀏覽器直接訪問RabbitMQ

http://192.168.237.130:15672/

在這裏插入圖片描述
用戶名密碼默認都是guest

檢查容器內部信息:

docker inspect 容器名稱(就是--name後的值,也可以是id值)

在這裏插入圖片描述
停止某個容器:

docker stop 容器名稱

啓動某個容器:

docker start 容器名稱

移除某個容器:

 docker rm 容器名稱 (容器必須是停止狀態)

由於屏幕的問題,name的值一定要找對
在這裏插入圖片描述

5.3、使用Docker部署Nginx服務器

獲取鏡像

docker search nginx

在這裏插入圖片描述
拉取鏡像

docker pull nginx

啓動nginx(這裏啓動多個nginx)

docker run -d --name "maltose1" -p 8088:80 nginx
docker run -d --name "maltose2" -p 8089:80 nginx
docker run -d --name "maltose3" -p 8090:80 nginx

訪問:
如果是阿里雲服務,記得配置安全組,騰訊雲也需要配置,這個就是一個防火牆
linux下訪問URL地址:

curl "http://127.0.0.1:8088"

瀏覽器也可以訪問到:

http://192.168.237.130:8088/

在這裏插入圖片描述

5.4、公司Docker鏡像倉庫使用

公共鏡像倉庫:

官方:https://hub.docker.com/,基於各個軟件開發或者有軟件提供商開發的
非官方:其他組織或者公司開發的鏡像,供大家免費試用(前邊提到過:網易、阿里等)

私有鏡像倉庫:

用於存放公司內部的鏡像,不提供給外部試用; 
eg:公司內部使用SpringCloud 開發了一個支付系統後,做成一個鏡像 (操作系統+軟件運行環境+用戶程序)

6、構建自己的私有鏡像倉庫

瞭解:

jenkins自動構建————自動將自己的私有鏡像部署到服務器裏;

阿里雲Docker鏡像地址
在這裏插入圖片描述
點擊"管理控制檯"後進入如下界面,先開通一下倉庫服務
在這裏插入圖片描述
開通後:
在這裏插入圖片描述
創建鏡像倉庫
在這裏插入圖片描述
在這裏插入圖片描述
完成創建:
在這裏插入圖片描述
可以在這裏看到操作步驟:
在這裏插入圖片描述
操作指南:
在這裏插入圖片描述
這裏將本地的RabbitMQ作爲我們的私有鏡像推送到阿里雲私有倉庫,關於如何將自己的鏡像打包,下次總結
本地鏡像:
在這裏插入圖片描述
1、登錄

docker login --username=東風麥芽糖 registry.cn-shenzhen.aliyuncs.com
#會提示輸入密碼

2、推送

#先打一個TAG: docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/maltose/maltose_images:[鏡像版本號]
docker tag 2f415b0e9a6e registry.cn-shenzhen.aliyuncs.com/maltose/maltose_images:ma_rabbitmq-v1.0.2
#推送
docker push registry.cn-shenzhen.aliyuncs.com/maltose/maltose_images:ma_rabbitmq-v1.0.2

3、拉取鏡像

線上服務器拉取鏡像:
docker login --username=東風麥芽糖 registry.cn-shenzhen.aliyuncs.com
docker pull registry.cn-shenzhen.aliyuncs.com/maltose/maltose_images:ma_rabbitmq-v1.0.2

啓動容器:
docker run -d --name "maltose" -p 5672:5672 -p 15672:15672 2f415b0e9a6e
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章