Docker是一個(gè)使用Go語(yǔ)言開(kāi)發(fā)的開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴到一個(gè)可移植的容器中,然后發(fā)布到任何流行的機(jī)器上。Docker的迅猛發(fā)展和全新理念,席卷了整個(gè)IT界,成為云時(shí)代的一顆新星。
創(chuàng)新互聯(lián)建站主營(yíng)滄源網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),滄源h5微信平臺(tái)小程序開(kāi)發(fā)搭建,滄源網(wǎng)站營(yíng)銷推廣歡迎滄源等地區(qū)企業(yè)咨詢
Docker相比于傳統(tǒng)虛擬化方式具有更多的優(yōu)勢(shì):
我們可以從下面這張表格很清楚地看到容器相比于傳統(tǒng)虛擬機(jī)的特性的優(yōu)勢(shì)所在:
企業(yè)使用一項(xiàng)技術(shù)是為了解決當(dāng)前企業(yè)環(huán)境中存在的某個(gè)痛點(diǎn)。目前整個(gè)軟件行業(yè)存在著以下幾個(gè)痛點(diǎn)。
(1)軟件更新發(fā)布及部署低效,過(guò)程繁瑣且需要人工介入。
(2)環(huán)境一致性難以保證。
(3)不同環(huán)境之間遷移成本太高。
Docker在很大程度上解決了上述問(wèn)題。
首先, Docker的使用十分簡(jiǎn)單,從開(kāi)發(fā)的角度來(lái)看就是“三步走”:構(gòu)建、運(yùn)輸、運(yùn)行。其中,關(guān)鍵步驟是構(gòu)建環(huán)節(jié),即打包鏡像文件。但是從測(cè)試和運(yùn)維的角度來(lái)看,那就只有兩步:復(fù)制、運(yùn)行。有了這個(gè)鏡像文件,想復(fù)制到哪里運(yùn)行都可以,完全和平臺(tái)無(wú)關(guān)。
Docker這種容器技術(shù)隔離出了獨(dú)立的運(yùn)行空間,不會(huì)和其他應(yīng)用爭(zhēng)用系統(tǒng)資源,不需要考慮應(yīng)用之間的相互影響。
其次, 因?yàn)樵跇?gòu)建鏡像時(shí)就處理完了服務(wù)程序?qū)τ谙到y(tǒng)的所有依賴,所以在使用時(shí),可以忽略原本程序的依賴以及開(kāi)發(fā)語(yǔ)言。對(duì)測(cè)試和運(yùn)維人員而言,可以更專注于自己的業(yè)務(wù)內(nèi)容。
最后, Docker為開(kāi)發(fā)者提供了一種開(kāi)發(fā)環(huán)境的管理辦法,幫助測(cè)試人員保證環(huán)境的同步,為運(yùn)維人員提供了可移植的標(biāo)準(zhǔn)化部署流程。
動(dòng)力節(jié)點(diǎn)的 Docker入門教程,將帶你一步一步從基礎(chǔ)到實(shí)踐學(xué)習(xí)Docker,了解什么是Docker,Docker的核心思想、核心組件諸如鏡像,倉(cāng)庫(kù),容器等,通過(guò)大量的實(shí)際操作循序漸進(jìn)地介紹Docker,帶你輕松玩轉(zhuǎn)Docker,Docker技術(shù)也是當(dāng)今IT從業(yè)人員的必備技能之一。
在線學(xué)習(xí):
資料下載:
?001.Docker視頻教程:虛擬化技術(shù)發(fā)展史
?002.Docker視頻教程:虛擬化技術(shù)是什么
?003.Docker視頻教程:虛擬化技術(shù)的分類
?004.Docker視頻教程:虛擬化技術(shù)的優(yōu)缺點(diǎn)
?005.Docker視頻教程:容器技術(shù)的發(fā)展
?006.Docker視頻教程:Docker的發(fā)展 歷史
?007.Docker視頻教程:Docker是什么
?008.Docker視頻教程:容器和虛擬機(jī)的區(qū)別(1)
?009.Docker視頻教程:容器和虛擬機(jī)的區(qū)別(2)
?010.Docker視頻教程:為什么要使用Docker視頻教程:Docker
?011.Docker視頻教程:Docker的版本
?012.Docker視頻教程:Docker的安裝
?013.Docker視頻教程:Docker服務(wù)啟動(dòng)
?014.Docker視頻教程:Docker服務(wù)信息
?015.Docker視頻教程:Docker使用初體驗(yàn)-Docker的運(yùn)行機(jī)制
?016.Docker視頻教程:Docker使用初體驗(yàn)-Docker官方鏡像倉(cāng)庫(kù)
?017.Docker視頻教程:Docker使用初體驗(yàn)-Docker官方鏡像下載
?018.Docker視頻教程:Docker使用初體驗(yàn)-Docker鏡像啟動(dòng)運(yùn)行
?019.Docker視頻教程:Docker使用初體驗(yàn)-訪問(wèn)容器中的Tomcat服務(wù)
?020.Docker視頻教程:Docker使用初體驗(yàn)-Docker的網(wǎng)絡(luò)訪問(wèn)機(jī)制
?021.Docker視頻教程:Docker使用初體驗(yàn)-進(jìn)入Docker容器內(nèi)部
?022.Docker視頻教程:Docker使用初體驗(yàn)-補(bǔ)充說(shuō)明
?023.Docker視頻教程:Docker的體系架構(gòu)(1)
?024.Docker視頻教程:Docker的體系架構(gòu)(2)r
?025.Docker視頻教程:Docker核心組件
?026.Docker視頻教程:Docker核心組件-鏡像的基本概念
?027.Docker視頻教程:Docker核心組件-鏡像的組成結(jié)構(gòu)
?028.Docker視頻教程:Docker核心組件-鏡像的日常操作(1)
?029.Docker視頻教程:Docker核心組件-鏡像的日常操作(2)
?030.Docker視頻教程:Docker核心組件-鏡像的日常操作(3)
?031.Docker視頻教程:Docker核心組件-鏡像的日常操作(4)
?032.Docker視頻教程:Docker核心組件-容器的基本概念
?033.Docker視頻教程:Docker核心組件-容器的日常操作(1)
?034.Docker視頻教程:Docker核心組件-容器的日常操作(2)
?035.Docker視頻教程:Docker核心組件-倉(cāng)庫(kù)的基本概念
?036.Docker視頻教程:Docker核心組件-官方倉(cāng)庫(kù)與阿里云倉(cāng)庫(kù)
?037.Docker視頻教程:Docker核心組件-倉(cāng)庫(kù)的日常操作(1)
?038.Docker視頻教程:Docker使用示例-安裝MySQL
?039.Docker視頻教程:Docker使用示例-訪問(wèn)與操作MySQL容器
?040.Docker視頻教程:Docker使用示例-安裝Nginx
?041.Docker視頻教程:Docker使用示例-訪問(wèn)Nginx容器
?042.Docker視頻教程:Docker使用示例-容器Nginx部署靜態(tài)網(wǎng)站
?043.Docker視頻教程:Docker使用示例-安裝Zookeeper
?044.Docker視頻教程:Docker使用示例-安裝ActiveMQ
?045.Docker視頻教程:認(rèn)識(shí)Dockerfile文件
?046.Docker視頻教程:Dockerfile的基本結(jié)構(gòu)
?047.Docker視頻教程:Dockerfile常用指令
?048.Docker視頻教程:自定義JDK鏡像Dockerfile文件
?049.Docker視頻教程:自定義JDK鏡像構(gòu)建與運(yùn)行測(cè)試
?050.Docker視頻教程:自定義Tomcat鏡像Dockerfile文件
?051.Docker視頻教程:自定義Tomcat鏡像構(gòu)建與運(yùn)行測(cè)試
?052.Docker視頻教程:自定義MySQL鏡像Dockerfile文件
?053.Docker視頻教程:自定義MySQL鏡像構(gòu)建與運(yùn)行測(cè)試
?054.Docker視頻教程:自定義Redis鏡像Dockerfile文件
?055.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測(cè)試(1)
?056.Docker視頻教程:自定義Redis鏡像構(gòu)建與運(yùn)行測(cè)試(2)
?057.Docker視頻教程:阿里云容器鏡像倉(cāng)庫(kù)
?058.Docker視頻教程:阿里云鏡像倉(cāng)庫(kù)管理后臺(tái)
?059.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(1)
?060.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(2)
?061.Docker視頻教程:發(fā)布鏡像到阿里云鏡像倉(cāng)庫(kù)(3)
?062.Docker視頻教程:Docker Hub官方鏡像加速
?063.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-介紹
?064.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-本地測(cè)試
?065.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-基本流程
?066.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-打Jar包與War包
?067.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像構(gòu)建
?068.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像運(yùn)行與測(cè)試(1)
?069.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-jar項(xiàng)目的鏡像運(yùn)行與測(cè)試(2)
?070.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的鏡像構(gòu)建與運(yùn)行
?071.Docker視頻教程:Docker部署SpringBoot項(xiàng)目-war項(xiàng)目的測(cè)試
?072.Docker視頻教程:Docker保存新鏡像
?073.Docker視頻教程:Docker保存的新鏡像數(shù)據(jù)驗(yàn)證
Docker 提供了一個(gè)與 Docker 守護(hù)進(jìn)程交互的 API (稱為Docker Engine API),我們可以使用官方提供的 Go 語(yǔ)言的 SDK 進(jìn)行構(gòu)建和擴(kuò)展 Docker 應(yīng)用程序和解決方案。
轉(zhuǎn)自:
整理:地鼠文檔
通過(guò)下面的命令就可以安裝 SDK 了:
該部分會(huì)介紹如何使用 Golang + Docker API 進(jìn)行管理本地的 Docker。
第一個(gè)例子將展示如何運(yùn)行容器,相當(dāng)于 docker run docker.io/library/alpine echo "hello world" :
還可以在后臺(tái)運(yùn)行容器,相當(dāng)于 docker run -d bfirsh/reticulate-splines :
列出正在運(yùn)行的容器,就像使用 docker ps 一樣:
如果是 docker ps -a ,我們可以通過(guò)修改 types.ContainerListOptions 中的 All 屬性達(dá)到這個(gè)目的:
通過(guò)上面的例子,我們可以獲取容器的列表,所以在這個(gè)案例中,我們可以去停止所有正在運(yùn)行的容器。
通過(guò)指定容器的 ID,我們可以獲取對(duì)應(yīng) ID 的容器的日志:
獲取本地所有的鏡像,相當(dāng)于 docker image ls 或 docker images :
拉取指定鏡像,相當(dāng)于 docker pull alpine :
除了公開(kāi)的鏡像,我們平時(shí)還會(huì)用到一些私有鏡像,可以是 DockerHub 上私有鏡像,也可以是自托管的鏡像倉(cāng)庫(kù),比如 harbor 。這個(gè)時(shí)候,我們需要提供對(duì)應(yīng)的憑證才可以拉取鏡像。
值得注意的是:在使用 Docker API 的 Go SDK 時(shí),憑證是以明文的方式進(jìn)行傳輸?shù)?,所以如果是自建的鏡像倉(cāng)庫(kù),請(qǐng)務(wù)必使用 HTTPS !
我們可以將一個(gè)已有的容器通過(guò) commit 保存成一個(gè)鏡像:
當(dāng)然,除了可以管理本地的 Docker , 我們同樣也可以通過(guò)使用 Golang + Docker API 管理遠(yuǎn)程的 Docker 。
默認(rèn) Docker 是通過(guò)非網(wǎng)絡(luò)的 Unix 套接字運(yùn)行的,只能夠進(jìn)行本地通信( /var/run/docker.sock ),是不能夠直接遠(yuǎn)程連接 Docker 的。
我們需要編輯配置文件 /etc/docker/daemon.json ,并修改以下內(nèi)容(把 192.168.59.3 改成你自己的 IP 地址),然后重啟 Docker :
創(chuàng)建 client 的時(shí)候需要指定遠(yuǎn)程 Docker 的地址,這樣就可以像管理本地 Docker 一樣管理遠(yuǎn)程的 Docker 了:
現(xiàn)在已經(jīng)有很多可以管理 Docker 的產(chǎn)品,它們便是這樣進(jìn)行實(shí)現(xiàn)的,比如: portainer 。
首選,如果之前使用過(guò)redis容器,我們需要先remove掉之前的容器
然后創(chuàng)建redis容器,并運(yùn)行
進(jìn)入redis容器中
接著我們通過(guò) redis-cli 連接測(cè)試使用 redis 服務(wù)
setex指令 可以設(shè)置數(shù)據(jù)存在的時(shí)間, setex key second value
MSET 一次設(shè)置多個(gè)key-value
MGET一次獲取多個(gè)key-value
HGET
HGETALL
Hlen和hexist
Lpush 和 Lrange
Lpop和Rpop 從鏈表取出并移走數(shù)據(jù)
刪除鏈表所有數(shù)據(jù) DEL
字符串無(wú)序 不能重復(fù)
從連接池中Get出一個(gè)conn連接
docker是一個(gè)用Go語(yǔ)言實(shí)現(xiàn)的開(kāi)源項(xiàng)目,可以讓我們方便的創(chuàng)建和使用容器,docker將程序以及程序所有的依賴都打包到docker container,這樣你的程序可以在任何環(huán)境都會(huì)有一致的表現(xiàn),這里程序運(yùn)行的依賴也就是容器就好比集裝箱,容器所處的操作系統(tǒng)環(huán)境就好比貨船或港口,程序的表現(xiàn)只和集裝箱有關(guān)系(容器),和集裝箱放在哪個(gè)貨船或者哪個(gè)港口(操作系統(tǒng))沒(méi)有關(guān)系。
簡(jiǎn)而言之Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,它可以將開(kāi)發(fā)的應(yīng)用生成鏡像,然后發(fā)布到任何系統(tǒng)上運(yùn)行。
因此我們可以看到docker可以屏蔽環(huán)境差異,也就是說(shuō),只要你的程序打包到了docker中,那么無(wú)論運(yùn)行在什么環(huán)境下程序的行為都是一致的,程序員再也無(wú)法施展表演才華了,不會(huì)再有“在我的環(huán)境上可以運(yùn)行”,真正實(shí)現(xiàn)“build once, run everywhere”。
二、安裝步驟
1.卸載舊版本的docker
如果Ubuntu系統(tǒng)中有舊版本的Docker,需要卸載后重新安裝,較早版本的docker被稱為docker, docker.io,或docker-engine。代碼如下:
sudo apt-get remove docker \
docker-engine \
docker.io
1
2
3
1
2
3
2.安裝docker方法
您可以以不同的方式安裝Docker引擎,具體取決于您的需要:
大多數(shù)用戶建立碼頭倉(cāng)庫(kù)并從它們安裝,以方便安裝和升級(jí)任務(wù)。這是推薦的方法。
一些用戶下載DEB軟件包手動(dòng)安裝并完全手動(dòng)管理升級(jí)。這是有用的情況下,如安裝碼頭在空隙系統(tǒng),沒(méi)有訪問(wèn)互聯(lián)網(wǎng)。
在測(cè)試和開(kāi)發(fā)環(huán)境中,一些用戶選擇使用自動(dòng)化。方便腳本安裝碼頭。
(1)使用存儲(chǔ)庫(kù)安裝
在首次在新主機(jī)上安裝Docker引擎之前,需要設(shè)置Docker存儲(chǔ)庫(kù)。之后,您可以從存儲(chǔ)庫(kù)中安裝和更新Docker。
設(shè)置存儲(chǔ)庫(kù)
1.更新apt包索引并安裝包以允許apt若要在HTTPS上使用存儲(chǔ)庫(kù),代碼如下:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
1
2
3
4
5
6
7
1
2
3
4
5
6
7
2.添加Docker的官方GPG密鑰:
$ curl -fsSL | sudo apt-key add -
1
1
驗(yàn)證您現(xiàn)在擁有帶有指紋的密鑰。9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88,通過(guò)搜索指紋的最后8個(gè)字符。
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) docker@docker.com
sub rsa4096 2017-02-22 [S]
1
2
3
4
5
1
2
3
4
5
3.使用以下命令設(shè)置穩(wěn)定儲(chǔ)存庫(kù)。若要添加夜間或試驗(yàn)存儲(chǔ)庫(kù),添加單詞nightly或test(或兩者兼而有之)stable在下面的命令中。
$ sudo add-apt-repository \
"deb [arch=amd64] \
$(lsb_release -cs) \
stable"
1
2
3
4
1
2
3
4
安裝Docker Engine
1.更新apt包索引,并安裝最新版本或轉(zhuǎn)到下一步安裝特定版本:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
1
2
1
2
有多個(gè)docker倉(cāng)庫(kù)?
如果啟用了多個(gè)Docker存儲(chǔ)庫(kù),則在不指定版本的情況下安裝或更新apt-get install或apt-get update命令總是安裝盡可能高的版本,這可能不適合您的穩(wěn)定性需求。
2.若要安裝特定版本在Docker Engine中,列出回購(gòu)中可用的版本,然后選擇并安裝:
A.列出回購(gòu)中可用的版本:
$ apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | xenial/stable amd64 Packages
...
1
2
3
4
5
6
7
1
2
3
4
5
6
7
B.使用第二列中的版本字符串安裝特定版本,例如,5:18.09.13-0ubuntu-xenial.
$ sudo apt-get install docker-ce=VERSION_STRING docker-ce-cli=VERSION_STRING containerd.io
1
1
3.通過(guò)運(yùn)行hello-world或者查看安裝docker的版本確定是否安裝成功。
$ sudo docker run hello-world
$ docker -v
1
2
1
2
這是安裝成功顯示的
此命令下載測(cè)試映像并在容器中運(yùn)行。當(dāng)容器運(yùn)行時(shí),它會(huì)打印一條信息性消息并退出。
Docker Engine已安裝并運(yùn)行。這個(gè)docker組被創(chuàng)建,但沒(méi)有向其添加任何用戶。你需要用sudo運(yùn)行Docker命令。繼續(xù)Linux后安裝允許非特權(quán)用戶運(yùn)行Docker命令和其他可選配置步驟。
要升級(jí)Docker Engine,首先運(yùn)行sudo apt-get update,然后按照安裝說(shuō)明,選擇要安裝的新版本。
(2)從包中安裝
如果無(wú)法使用Docker的存儲(chǔ)庫(kù)安裝Docker引擎,則可以下載.deb為您的發(fā)行文件和手動(dòng)安裝它。每次升級(jí)Docker時(shí),都需要下載一個(gè)新文件。
1.去,選擇您的Ubuntu版本,然后瀏覽到pool/stable/,選擇amd64, armhf,或arm64,并下載.deb要安裝的Docker引擎版本的文件。
注*安裝nightly或test(預(yù)發(fā)行版)包,更改單詞stable在上面的URL中nightly或test.
2安裝Docker引擎,將下面的路徑更改為下載Docker包的路徑。
$ sudo dpkg -i /path/to/package.deb
1
1
Docker守護(hù)進(jìn)程自動(dòng)啟動(dòng)。
3.通過(guò)運(yùn)行hello-world確認(rèn)是否安裝成功。
$ sudo docker run hello-world
1
1
此命令下載測(cè)試映像并在容器中運(yùn)行。當(dāng)容器運(yùn)行時(shí),它會(huì)打印一條信息性消息并退出。
Docker Engine已安裝并運(yùn)行。這個(gè)docker組被創(chuàng)建,但沒(méi)有向其添加任何用戶。你需要用sudo運(yùn)行Docker命令。繼續(xù)Linux的安裝后步驟允許非特權(quán)用戶運(yùn)行Docker命令和其他可選配置步驟。
升級(jí)Docker Engine
若要升級(jí)Docker引擎,請(qǐng)下載較新的包文件并重復(fù)安裝程序指向新文件。
3.安裝Docker Compose
(1)Docker Compose是什么
Composed是一個(gè)用于定義和運(yùn)行多容器碼頭應(yīng)用程序的工具。通過(guò)撰寫(xiě),您可以使用YAML文件配置應(yīng)用程序的服務(wù)。然后,使用一個(gè)命令創(chuàng)建并啟動(dòng)配置中的所有服務(wù)。
compose可以在所有環(huán)境中撰寫(xiě)工作:生產(chǎn)、分期、開(kāi)發(fā)、測(cè)試以及CI工作流。
使用compose基本上是一個(gè)三步的過(guò)程:
使用Dockerfile所以它可以在任何地方復(fù)制。
中定義構(gòu)成應(yīng)用程序的服務(wù)。docker-compose.yml所以它們可以在一個(gè)孤立的環(huán)境中一起運(yùn)行。
跑docker-compose up然后編寫(xiě)、啟動(dòng)和運(yùn)行整個(gè)應(yīng)用程序。
(2)安裝Docker Compose
先決條件:Docker組合依賴于Docker引擎進(jìn)行任何有意義的工作,因此,請(qǐng)確保安裝了本地或遠(yuǎn)程的Docker引擎,這取決于您的設(shè)置。
1.運(yùn)行此命令可以下載DockerComposed當(dāng)前的穩(wěn)定版本:
sudo curl -L "(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1
1
2.將可執(zhí)行權(quán)限應(yīng)用于二進(jìn)制文件:
sudo chmod +x /usr/local/bin/docker-compose
1
1
注*如果命令docker-compose安裝后失敗,請(qǐng)檢查您的路徑。您還可以創(chuàng)建一個(gè)指向/usr/bin或者路徑中的任何其他目錄。
如
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.測(cè)試安裝
輸入下面代碼,如果安裝成功則會(huì)顯示安裝的版本號(hào)。
$ docker-compose --version
1
1
網(wǎng)站題目:go語(yǔ)言實(shí)現(xiàn)docker Go語(yǔ)言實(shí)現(xiàn)b+樹(shù)
網(wǎng)址分享:http://vcdvsql.cn/article46/doieoeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站收錄、網(wǎng)站制作、品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容