這篇文章給大家分享的是學(xué)習(xí)docker系統(tǒng)的知識(shí)總結(jié),相信大部分人都還不熟悉docker系統(tǒng)的各項(xiàng)操作,這篇文章不僅包含docker系統(tǒng)的概念還詳細(xì)講述了操作步驟,一起往下看吧。
10年積累的網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有平度免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
下載地址
http://www.linuxidc.com/Linux/2014-01/95513.htm
根據(jù)上面安裝之后,啟動(dòng)不起來。yum update device-mapper* 之后啟動(dòng)ok.
linux與docker版本的兼容性問題
uname -r
yum update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install docker-ce
systemctl start docker
systemctl enable docker
docker version
鏡像刪除不了辦法:
概念
hostos:宿主機(jī)操作系統(tǒng)
guestos:虛擬機(jī)操作系統(tǒng)
一、主機(jī)級(jí)別虛擬化
1.完全虛擬化:vmware,kvm,xen(hvm)
|---guestos--------------|
|--------vmm-------------|
|----------hostos--------|
|------------hardware----|
2.半虛擬化:xen,uml
hypervisor(vmm)直接運(yùn)行在硬件層
|---guestos(modfiled)----|
|--------vmm-------------|
|------------hardware----|
3.模擬:qemu
二、用戶空間虛擬化(容器)
lxc,openvz,solaris containers,freebsd jails
三、庫(kù)虛擬化
wine cygwin
四、應(yīng)用程序虛擬化
jvm,pvm
用戶空間虛擬化(容器)
chroot+6個(gè)名稱空間+cgroups=容器
lxc,openvz,solaris containers,freebsd jails
隔離:namespace名稱空間
uts(主機(jī)名域名),mount,ipc,pid,user,net
其中user是內(nèi)核3.8以后才加進(jìn)內(nèi)核
control groups(cgroups):是Linux內(nèi)核提供的進(jìn)程資源限制機(jī)制,對(duì)資源進(jìn)行分組。
lxc-linux container
docker 是lxc的增強(qiáng)版
分層聯(lián)合掛載:每層都是只讀,比如系統(tǒng)一層,應(yīng)用一層。每層疊加放入容器。寫的時(shí)候在頂層加一層可以讀寫層。刪只讀層?xùn)|西就是標(biāo)記不可見。每個(gè)容器共享只讀層。
遷移,容器內(nèi)部不要保存有效數(shù)據(jù),需要的話掛載外網(wǎng)分布式系統(tǒng)。
基礎(chǔ)用法
docker 架構(gòu):c/s架構(gòu)
他們直接通信使用https/http 默認(rèn)https.
client:docker build
docker pull
docker run
docker host: docker deamon
containers
images
registry: 認(rèn)證+倉(cāng)庫(kù)+其他 組成
倉(cāng)庫(kù):倉(cāng)庫(kù)名+標(biāo)簽唯一標(biāo)識(shí)一個(gè)鏡像(nginx:1.1/nginx:latest;nginx:1.0/nginx:stable)
鏡像:靜態(tài)
容器:動(dòng)態(tài),有生命周期
docker 對(duì)象:images,containers,networks,volumes,plugins 這些對(duì)象都可以增刪改查。
安裝:內(nèi)核3.10+ 必須大于3.8
yum install docker-ce #注意,使用extras里的是yum install docker
systemctl start docker.service
配置文件:/etc/docker/daemon.json
docker鏡像加速:
docker cn
阿里云加速器
中國(guó)科技大學(xué)
cat /etc/docker/daemon.json 顯示如下內(nèi)容:
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
docker命令:
格式1: docker 命令
格式2:docker 分組 命令
docker version
docker info
docker search nginx
docker image pull nginx:1.14-alpine
docker image ls
docker image ls --no-trunc #顯示完整image id信息
docker image rm nignx:1.14-alpine # docker rmi
docker containers create
docker containers start
docker containers stop
docker containers kill
docker containers rm
docker containers run #創(chuàng)建并運(yùn)行
docker run [options] image [command line] [arg..]
docker run --name wbl -it busybox:latest #i,t是終端交互模式
docker run --name wbl2 -d busybox:latest #-d是后臺(tái)運(yùn)行模式
docker network ls
docker ps #查看容器列表
docker ps -a #查看停止后的容器列表
docker container ls
docker container ls -a
docker run -a # -a, --attach=[], 登錄容器(必須是以docker run -d啟動(dòng)的容器)
docker inspect wbl #查看容器詳細(xì)信息
docker start -ai wbl #a是attach,i是交互。啟動(dòng)容器
docker kill wbl #相當(dāng)于-9
docker rm wbl #刪除
#注意:容器中程序不能運(yùn)行在后臺(tái),否則會(huì)終止
docker exec -it wbl /bin/sh #進(jìn)入正在運(yùn)行的容器
docker logs wbl #查看容器里日志,容器里進(jìn)程日志不存文件而是輸出到控制臺(tái)。
鏡像介紹:
docker鏡像含有啟動(dòng)容器所需文件系統(tǒng)及其內(nèi)容。用于創(chuàng)建啟動(dòng)鏡像。
docker鏡像采用分層機(jī)制:bootfs和rootfs
bootfs:是引導(dǎo)文件系統(tǒng),包括bootloader和kernel,容器啟動(dòng)完成后就卸載了。
rootfs: 在bootfs之上,表現(xiàn)為docker容器的根文件系統(tǒng),掛載為只讀模式,而后通過聯(lián)合掛載一個(gè)外掛載可寫層。
啟動(dòng)時(shí)候先從底層一層層聯(lián)合掛載,只讀的并是與其他容器共享的。最頂層是可寫層。刪除容器時(shí)可寫層一并刪除。
聯(lián)合掛載需要專用分層文件系統(tǒng):aufs,overlayfs,overlay2fs,btrfs,devicemapper
docker info 可以查看存儲(chǔ)類型
啟動(dòng)容器時(shí),docker daemon 會(huì)試圖從本地獲取相關(guān)鏡像,本地鏡像不存在,將從registry中下載該鏡像并保存到本地。
docker client -----http----> docker daemon ----https-> docker registry
docker registry分類:
sponsor registry:第三方,供客戶和docker社區(qū)使用
mirror registry: 第三方,只讓客戶使用
vendor registry: 由發(fā)布docker鏡像的供應(yīng)商提供
private registry: 自建的有防火墻的安全的私有實(shí)體提供的。
registry 組成:
1)repository
一個(gè)registry有多個(gè)倉(cāng)庫(kù),一個(gè)倉(cāng)庫(kù)可以分為頂層倉(cāng)庫(kù)(比如nginx)和用戶倉(cāng)庫(kù)(wbl/nginx),每個(gè)倉(cāng)庫(kù)還可以有多個(gè)tag
2)index
維護(hù)用戶賬戶,鏡像的校驗(yàn)以及公共信息。為registry提供用戶檢索功能。
docker registry中鏡像通常有開發(fā)人員制作,而后推送公共或私有registry保存,以供其他人員使用。
docker hub功能:
image repositories:
automated builds: 可以基于dockerfile;也可以commit
webhooks:
organizations:
dcoker pull <registry>[:<port>]/[<namespace>/]<name>:<tag>
git -> git hub -> docker hub -> docker repository
其他鏡像倉(cāng)庫(kù):quay.io : docker pull quay.io/coreos/flannel
鏡像生成途徑:
dockerfile
基于容器制作
docker hub automated builds
dockerfile------------build---------> images ----------push-------> docker registry
images <---------pull-------- docker registry
images ----------save--------> backup.tar
images <----------load-------- backup.tar
images -----------run--------> container
images <----------commit------ container
基于容器制作:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -p wbl nginx/wbl:v1.1.1 #-p 是暫停
docker commit -a "wbl" -c 'CMD ["/bin/httpd","-f","-h","/data/www"]' -p 基于鏡像名 新鏡像名和tag
push到docker-hub:
docker login -u wbl1232002a
[root@iZj6chmozc373fzvc4vs9sZ docker]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx/wbl v.wbl.1 219619953381 2 days ago 16.8MB
nginxdemos/hello latest aedf47d433f1 18 months ago 16.8MB
docker tag nginx/wbl:v.wbl.1 wbl1232002a/nginx-wbl:v.wbl.1 #注意上傳的倉(cāng)庫(kù)名需要和docker-hub一樣。
docker push wbl1232002a/nginx-wbl
鏡像的導(dǎo)入和導(dǎo)出:docker save 和 docker load
docker save -o aaa.gz image1 image2
docker load -i aaa.gz
docker網(wǎng)絡(luò)
docker network ls #查看docker的網(wǎng)絡(luò)模式,橋接,僅主機(jī)
docker network inspect bridge
查看網(wǎng)卡相關(guān)命令:ifconfig ; brctl show ; ip link show #yum install bridge-utils
疊加網(wǎng)絡(luò) overlay network :使用隧道技術(shù),在原有包外再封裝一層物理網(wǎng)卡的包。
bridge 橋接模式:
docker 啟動(dòng)后會(huì)創(chuàng)建一個(gè)docker0的交換機(jī)默認(rèn)是橋接模式,還會(huì)默認(rèn)配置好ip。docker創(chuàng)建容器后,會(huì)分配一對(duì)網(wǎng)卡,一半連接容器,一半連接docker0交換機(jī)。
并且自動(dòng)修改防火墻添加nat
容器 eth0---->vethxx docker0 (nat)-----> 物理機(jī)網(wǎng)卡ip #開啟ip forward
host模式: 容器共享宿主機(jī)的物理網(wǎng)卡ip,容器里的ip就是外網(wǎng)物理ip
user,mount,pid
---> 共享(宿主機(jī))的uts,net,ipc
user,mount,pid
container模式:
user,mount,pid
---> 共享(容器)的uts,net,ipc
user,mount,pid
封閉模式none: 容器沒有network namespace,只有l(wèi)o口。保證的容器的安全。
ip命令:ip netns help
ip netns add r1 #創(chuàng)建一個(gè)網(wǎng)絡(luò)命名空間名字是r1
ip netns exec r1 ifconfig -a #在r1里執(zhí)行命令查看網(wǎng)卡信息
ip link help
ip link show
ip link add name veth2.1 type veth peer name veth2.2 #創(chuàng)建一對(duì)網(wǎng)卡
ip link set dev veth2.1 netns r1 #將網(wǎng)卡veth2.1 移到網(wǎng)絡(luò)命名空間r1
ip netns exec r1 ifconfig -a
ip netns exec r1 ip link set dev veth2.1 name eth0 #更改namesapce r1里網(wǎng)卡名稱
ip netns exec r1 ifconfig eth0 192.168.5.1/24 up
docker 命令參數(shù) 暴露端口
bridge橋接模式:
docker port wbl #顯示指定容器的映射。
docker -p #映射容器端口到物理端口地址 -p 80 容器80映射到物理網(wǎng)卡隨機(jī)端口。
docker -P #大P,將容器所有要暴露端口全部映射到主機(jī)端口。容器是80,宿主機(jī)就是80.
docker run wbl:v.1 --name wbl2 -p hostip::80 #映射物理ip端口隨機(jī) 到容器的80
docker run wbl:v.1 --name wbl2 -p hostip:80:80 #映射物理ip端口80 到容器的80
docker run wbl:v.1 --name wbl2 -p 80:80 #映射物理所有ip端口80 到容器的80
host模式:
docker run wbl:v.1 --name wbl2 --network host
container模式:
docker run wbl:v.1 --name wbl2 --network container:wbl1 #共享容器wbl1的網(wǎng)絡(luò)命名空間
none:
docker run wbl:v.1 --name wbl2 --network none
修改docker0橋默認(rèn)的ip地址: vi /etc/docker/demon.json
{
"registry-mirrors" : ["https://registry.docker-cn.com"],
"bip" : "192.168.74.1/24",
"hosts" : ["tcp://0.0.0.0:2376","unix:///var/run/docker.sock"
}
systemctl daemon-reload
systemctl restart docker
重啟docker 服務(wù)器即可。
自定義網(wǎng)絡(luò)模式:
存儲(chǔ)卷
cow:寫時(shí)復(fù)制 ,就是在修改寫入只讀層數(shù)據(jù)時(shí)候,先復(fù)制數(shù)據(jù)到可寫層,然后修改數(shù)據(jù)。
刪除數(shù)據(jù):就是標(biāo)志只讀層數(shù)據(jù)為刪除。然后用戶層不可見。
為什么使用volume:
刪除容器數(shù)據(jù)丟失
解決方案:使用卷volume
通過外部掛載到容器目錄方式。
volume卷類型:
手動(dòng)創(chuàng)建容器目錄,docker自動(dòng)管理掛載宿主機(jī)目錄。/var/lib/docker/vfs/<some volume>
這種方式,如果刪除容器后再啟動(dòng),docker再次自動(dòng)掛載的目錄可能和上次不一樣。因此數(shù)據(jù)不一樣。
命令:
docker run -it --name wbl123 -v /data nginx:v1.1 #-v 指定容器目錄,自動(dòng)創(chuàng)建宿主機(jī)上的卷并掛載
docker run -it -v 宿主機(jī)dir:容器dir --name wbl123 nginx:v1.1 #手動(dòng)指定方式;兩邊目錄不存在都會(huì)自動(dòng)創(chuàng)建;hostdir 是宿主機(jī)目錄:容器目錄
docker inspect -f {{.Mounts}} wbl123 #查看詳細(xì)內(nèi)容,-f是指定,過濾意思
docker run -it --rm --name wbl0 -v /data/wbl0:/data/wbl0 nginx-wbl:v8800 ls /data
sharing volumes復(fù)制其他容器的卷:
docker run -it --name wbl1 -v /wbl:/data nginx:v.1.1
docker run -it --name wbl3 --volumes-from wbl1 nginx:v.1.1
docker run -it --name wbl4 --network container:wbl --volumes-from wbl1 nginx:v.1.1 #可以使用一個(gè)容器做基礎(chǔ)容器。只有存在就好。
Dockerfile: 命令 docker build #docker build -t wbl:v.1 .
前導(dǎo):
想改變nginx的配置文件三種方式:{1:進(jìn)入容器修改;2:容器的掛載卷使用宿主機(jī);3:自己制作鏡像}
自己制作鏡像有兩種方式:{1:基于容器自制鏡像;2:基于Dockerfile自制鏡像}
dockerfile格式:{指令:參數(shù)}#指令不區(qū)分大小寫,但是潛規(guī)則都是大寫。
工作邏輯:
創(chuàng)建一個(gè)專用工作目錄wbl; wbl目錄里要有文件Dockerfile(首字母必須大寫,沒有后綴),所有文件都需要放入wbl目錄不能是wbl的父目錄。
隱藏文件.dockeringore可以排除目錄文件,一行一個(gè),可以使用通配符。
docker build: 基于wbl目錄里的基礎(chǔ)鏡像和文件,隱藏啟動(dòng)一個(gè)容器,然后制作成新的鏡像,和人工制作鏡像雷同。
docker 指令:
FROM: 必須為dockerfile第一個(gè)非注釋行,引用基于哪個(gè)基礎(chǔ)鏡像來制作鏡像。后續(xù)所有指令運(yùn)行都是基于此鏡像提供的環(huán)境。
docker build的時(shí)候它會(huì)先在主機(jī)本地查找,不存在會(huì)從docker hub registry拉取
語(yǔ)法:FROM 倉(cāng)庫(kù)名:tag #沒有tag就是latest
FROM 倉(cāng)庫(kù)名@digest #為了安全使用hash碼
MAINTAINER: 作者信息
LABEL: 高版本代替maintainer
LABLE KEY=VALUE #LABLE maintainer="wbl"
COPY: 從宿主機(jī)的當(dāng)前wbl目錄里的文件復(fù)制到創(chuàng)建的新鏡像中
COPY aaa /data/aaa2
COPY ["aaa","/data/aaa2"] #目標(biāo)使用絕對(duì)路徑,否則,COPY指定以WORKDIR為起始路徑;源文件是目錄的話,子目錄和文件會(huì)遞歸復(fù)制,但是目錄本身
# 不會(huì)復(fù)制
#如果源目錄是多個(gè)或者使用通配符,目標(biāo)必須是目錄,并且以/結(jié)尾
#如果目標(biāo)目錄不存在,會(huì)自動(dòng)創(chuàng)建
ADD: 類似COPY,支持打包壓縮和url路徑。
例如: ADD http://www.aaa.com/a.tar.gz /data/wbl/ #a.tar.gz 會(huì)下載到/data/wbl 目錄下,不展開
ADD a.tar.gz /data/wbl/ #a.tar.gz 會(huì)自動(dòng)解壓展開到/data/wbl目錄下。
WORKDIR:/data/wbl # ADD a.tar.gz ./ workdir相當(dāng)于根路徑
VOLUME:鏡像里的哪個(gè)掛載路徑到宿主機(jī)上 # VOLUME /data/wbl 意思是把容量里/data/wbl目錄 的卷使用的是宿主機(jī)的卷。docker inspect 查看
EXPOSE:指定暴露給外部的端口。只有指定了之后,在啟動(dòng)容器時(shí)候加-P才可以暴露出去。
一次可以指定多個(gè)端口
EXPOSE 11211/udp 11211/tcp #不加協(xié)助默認(rèn)tcp
ENV: 定義環(huán)境變量
ENV key value #wbl=123 ;如果value包括空格,可以\轉(zhuǎn)義,也可以對(duì)value加引號(hào),另外\也可以續(xù)行
ENV key=valude #wbl 123 456 ; 123 456 都是變量 調(diào)用${wbl}
EVN DOC_ROOT=/data/wbl/ \
NAME=wbl
啟動(dòng)容器時(shí)候,可以傳入變量
docker run --name wbl --rm -P 鏡像名 printenv #打印環(huán)境變量
docker run --name wbl --rm -P -e NAME="WBL2" 鏡像名 printenv
文件----docker build{RUN}---->image ------docker run{CMD}------>容器 #RUN是生成鏡像時(shí)候運(yùn)行命令。鏡像生成后運(yùn)行為容器時(shí)候RUN里命令不再執(zhí)行的。CMD會(huì)執(zhí)行。
RUN: 使用在制作鏡像的過程中所要運(yùn)行命令,基于基礎(chǔ)鏡像環(huán)境的命令。
語(yǔ)法:
RUN commad
RUN ["commad","param1","param2"]
RUN COMMAND1 && \
COMMAND2
RUN yum install -y lrzsz
說明:第一種通常是一個(gè)shell命令,以"/bin/sh -c"運(yùn)行它,在容器進(jìn)程pid不為1,不能接收unix信號(hào),docker stop 停止容器時(shí),此進(jìn)程接收不到信號(hào)。
第二種是json格式數(shù)組,這種格式命令不會(huì)以/bin/sh -c 發(fā)起運(yùn)行。因此常見shell操作比如通配符不會(huì)起作用。想使用shell操作可以使用下面寫法
RUN ["/bin/bash","-c","commad","param1"]
CMD: 類似RUN,啟動(dòng)容器指定默認(rèn)要運(yùn)行程序,且運(yùn)行結(jié)束后容器也終止,CMD指定命令會(huì)被docker run的命令選項(xiàng)覆蓋。
和RUN的區(qū)別是:{1,運(yùn)行時(shí)間點(diǎn)不同(RUN是docker build成鏡像時(shí)候運(yùn)行;CMD是docker run成容器時(shí)候執(zhí)行,這個(gè)時(shí)候RUN里運(yùn)行命令已經(jīng)生成靜態(tài)的鏡像了。);
2,運(yùn)行命令次數(shù)不同(RUN可以多次,CMD只有最后一次生效)}
語(yǔ)法:CMD command
CMD ["command","param1","param2"]
CMD ["param1","param2"]
第三種用于為ENTRYPOINT指令提供默認(rèn)參數(shù)
ENTRYPOINT: 類似CMD,為容器指定默認(rèn)運(yùn)行程序,與CMD不同的是,ENTRYPOINT啟動(dòng)進(jìn)程不會(huì)被docker run 命令指定參數(shù)覆蓋,并且會(huì)被當(dāng)做參數(shù)傳給ENTRYPOINT指定程序。
注意:docker run --entrypoint 可以覆蓋ENTRYPOINT指定的程序。
docker run 命令傳入?yún)?shù)會(huì)覆蓋CMD的內(nèi)容并當(dāng)ENTRYPOINT命令的參數(shù)。
Dockerfile文件可以用多個(gè)ENTRYPOINT,但只有最后一個(gè)生效。
ENTRYPOINT ["ls"]
USER:
HEALTHCHECK: 健康檢查
HEALTHCHECK --interval=35s CMD curl http://ip:8090/test.html
--interval=35s #檢查間隔,default:30s
--timeout=35s #超時(shí).default:30s
--start-perid=15s #容器起來之后15秒開始檢查,default:0s
--retries=2 #重試幾次,default:3
命令返回值:
0:success
1:unhealthy
2: 保留,不使用
example:
HEALTHCHECK --interval=5m --timeout=3s \
CMD curl http://ip:8090/test.html || exit 1
SHELL: 指定使用的shell,默認(rèn) /bin/sh -c
STOPSIGNAL: 語(yǔ)法:STOPSIGNAL 9 #默認(rèn)是15
ARG:適用于build time 時(shí)候傳入?yún)?shù)
ARG aaa
ENV WBL2=${aaa:-/data/wbl1/wbl2}
docker build --build-arg aaa="/data/wbl1/wbl3" -t 鏡像名:v.1.1 ./
ONBUILD: 在dockerfile中定義一個(gè)觸發(fā)器;自己在用dockerfile制作鏡像時(shí)候可以添加觸發(fā)器,在其他人使用這個(gè)鏡像做其他dockerfile的基礎(chǔ)鏡像時(shí)候被觸發(fā)。
除了FROM,MAINTAINER和ONBUILD之外其他所有指令可以使用。
命名標(biāo)簽如 ruby:2.0-onbuild
注意:使用ADD COPY 小心人家那邊沒有那個(gè)文件。
語(yǔ)法: ONBUILD COPY a b #命令是dockerfile的指令。
實(shí)例:
[root@izj6chmozc373fzvc4vs9sz build-image]# cat Dockerfile
FROM nginx-wbl:v8800
MAINTAINER wbl:test.1
ARG AAA
ENV WBL2=${AAA:-/data/wbl1/wbl2}
RUN mkdir -pv $WBL2
#VOLUME $WBL2
COPY h.txt $WBL2
ADD zzz.tar.gz $WBL2
CMD ["/bin/sh"]
#ENTRYPOINT ["ls"]
[root@izj6chmozc373fzvc4vs9sz build-image]# ls
Dockerfile h.txt zzz.tar.gz
[root@izj6chmozc373fzvc4vs9sz build-image]# docker build -t nginx-wbl:v8801
以上就是docker系統(tǒng)的知識(shí)匯總,內(nèi)容較為全面,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ骺赡軙?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。
網(wǎng)頁(yè)名稱:docker系統(tǒng)學(xué)習(xí)
URL標(biāo)題:http://chinadenli.net/article8/gjcpip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站制作、商城網(wǎng)站、云服務(wù)器
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)