昆明企业建站程序,万网空间最多放几个网站,常州网站优化,肃北蒙古族自治县建设局网站Docker基础入门#xff1a;容器数据卷与Dockerfile构建镜像#xff08;发布#xff09; 一、docker容器数据卷1.1、使用docker容器数据卷1.2、具名挂载、匿名挂载1.3、如何确定是具名挂载还是匿名挂载 二、使用dockerfile2.1 初识Dockerfile2.2 Dockerfile构建过程2.3 Docke… Docker基础入门容器数据卷与Dockerfile构建镜像发布 一、docker容器数据卷1.1、使用docker容器数据卷1.2、具名挂载、匿名挂载1.3、如何确定是具名挂载还是匿名挂载 二、使用dockerfile2.1 初识Dockerfile2.2 Dockerfile构建过程2.3 Dockerfile指令2.4 实战---构建自己的一个centos2.5 实战---构建自己的一个tomcat 三、发布镜像至阿里云3.1、登录阿里云Docker Registry3.2、使用 docker push 命令将centos镜像提交至阿里云3.3、阿里云镜像仓库查看 四、总结—温故知新图片来源于网络 The Begin点点关注收藏不迷路 一、docker容器数据卷
1、完成数据持久化和共享数据,docker容器中的数据同步到本地。 2、重要数据back_up
特点 实时生效、数据卷可在容器之间共享和重用数据、数据卷中的更改不会包含在镜像更新中、数据卷的生命周期会一直延续到没有容器使用它为止。 1.1、使用docker容器数据卷
使用命令挂载
docker run -it -v /宿主机绝对路径:/容器内目录 镜像名案例 1、容器/home目录挂载至宿主机/home/ceshi目录
docker run -it -v /宿主机绝对路径:/容器内目录 镜像名[rootzyl-server ~]# docker run -it -v /home/ceshi:/home centos /bin/bash
Unable to find image centos:latest locally
latest: Pulling from library/centos
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
[root83e82e6509e6 /]# 测试——宿主机
[rootzyl-server /]# cd /home/ceshi/
[rootzyl-server ceshi]# ll
total 0
[rootzyl-server ceshi]#
[rootzyl-server ceshi]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83e82e6509e6 centos /bin/bash 5 minutes ago Up 5 minutes priceless_volhard
99974acec585 portainer/portainer /portainer 11 days ago Up 11 minutes 0.0.0.0:8088-9000/tcp, :::8088-9000/tcp blissful_mclaren
[rootzyl-server ceshi]# 查看数据卷是否挂载成功
docker inspect 容器id
[rootzyl-server ceshi]# docker inspect 83e82e6509e6测试
宿主机
[rootzyl-server ceshi]# ll
total 0
[rootzyl-server ceshi]# touch test.java
[rootzyl-server ceshi]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 28 21:52 test.java
[rootzyl-server ceshi]# 容器内查看test.java文件是否同步
[root83e82e6509e6 /]# cd /home/
[root83e82e6509e6 home]# ls
test.java
[root83e82e6509e6 home]# 停止容器在宿主机修改挂载目录文件依旧可以实现数据同步修改文件只需在宿主机修改即可容器内会自动同步。
1.2、具名挂载、匿名挂载
1、匿名挂载
## -v 容器内路径
docker run -d -P --namenginx01 -v /etc/nginx nginx[rootzyl-server ~]# docker run -d -P --namenginx01 -v /etc/nginx nginx
a562312cab24a00dae2e9c01b02113e92372d71a0025c46aa5d2cf32b99ebdd4## 查看容器内所有volume 的情况
[rootzyl-server ~]# docker volume ls
DRIVER VOLUME NAME
local 192e75fc04cf12757b855fa03c4f14c69bcb3e81034670f43cde7086920760c4
local 00601bab7587cbdd2c5985707b1b5f7e7e570d19d7f5941980677cf8f3ca509a
local 4583527b6a150e898423c0533ae82ca5022cef13769f9b5cb66b2253d3a734fb
local 4985806fac61d833ac29f155155817156262b7c93ce3264450ab1b1e06f23f5a
[rootzyl-server ~]#
[rootzyl-server ~]# 这就是匿名挂载在-v 只写了容器内的路径没有写容器外宿主机的地址
2、具名挂载
通过 -v 卷名:容器内路径
docker run -d -P --namenginx02 -v juming-nginx:/etc/nginx nginx[rootzyl-server ~]# docker run -d -P --namenginx02 -v juming-nginx:/etc/nginx nginx
f0e149830cef370054f35a4ccd3e281d31231604c763ce7713c199a850978172
[rootzyl-server ~]# 查看这个具名挂载的juming-nginx
[rootzyl-server ~]# docker volume inspect juming-nginx
[{CreatedAt: 2023-08-28T22:20:5408:00,Driver: local,Labels: null,Mountpoint: /var/lib/docker/volumes/juming-nginx/_data,Name: juming-nginx,Options: null,Scope: local}
]
[rootzyl-server ~]#
docker 在没有指定目录的情况下容器内的卷都在’/var/lib/docker/volumes/卷名/_data’ 我们通过具名挂载可以方便的找到卷大多数情况使用的都是具名挂载。
1.3、如何确定是具名挂载还是匿名挂载
-v 容器内路径 ##匿名挂载
-v 卷名:容器内路径 ###具名挂载
-v /宿主机路径:容器内路径 ##指定路径挂载拓展读写规则映射添加
docker run -it --privilegedtrue -v /宿主机绝对路径:/容器内目录ro只读默认可读可写 镜像名ro ##只读如果有ro则说明只能通过宿主机来操作容器内无法操作
rw ##可读可写二、使用dockerfile
Dockerfile是用来构建Docker镜像的文本文件是由一条条构建镜像所需的指令和参数构成的脚本。
2.1 初识Dockerfile
通过docker 构建一个简单镜像。
[rootzyl-server ~]# mkdir docker-test-volume
[rootzyl-server ~]# cd docker-test-volume/###创建一个dockfile文件
[rootzyl-server docker-test-volume]# vi dockerfile01
[rootzyl-server docker-test-volume]# dockerfile01 文件内容每个命令就是镜像的一层
FROM centosVOLUME [volume01,volume02]CMD echo ----end----CMD /bin/bashbuild镜像 ###zyl 为镜像名最后的. 表示生成在当前目录下
[rootzyl-server docker-test-volume]# docker build -f /root/docker-test-volume/dockerfile01 -t zyl/centos:1.0 .报错 构建Dockerfile中FROM私库镜像报错构建失败。
问题解决 Docker在v23.0版本及以后使用了build-kit代替了旧的实现目前build-kit对insecure-registries配置可能没做兼容构建Dockerfile FROM镜像时未判断是私库导致报错。
[rootzyl-server docker-test-volume]# docker -v
Docker version 24.0.5, build ced0996
[rootzyl-server docker-test-volume]#
在 ~/.bashrc 或 /etc/profile 添加一行 export DOCKER_BUILDKIT0然后 source 修改的配置文件。
命令示例
echo export DOCKER_BUILDKIT0 ~/.bashrc
source ~/.bashrc启动刚构建的容器
## docker run -it 镜像id
[rootzyl-server docker-test-volume]# docker run -it 1179bafa65b3 /bin/bash
[roota47d66371273 /]# ls
bin dev etc home lib lib64 lostfound media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
[roota47d66371273 /]# 在刚构建的容器数据卷中volume0、volume02中 创建文件测试
容器内
[rootzyl-server docker-test-volume]# docker run -it 1179bafa65b3 /bin/bash
[rootbd3c420a9d03 /]# ls
bin dev etc home lib lib64 lostfound media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
[rootbd3c420a9d03 /]# cd volume0
bash: cd: volume0: No such file or directory
[rootbd3c420a9d03 /]# cd volume01
[rootbd3c420a9d03 volume01]# ls
[rootbd3c420a9d03 volume01]# touch test.java
[rootbd3c420a9d03 volume01]# ls
test.java
[rootbd3c420a9d03 volume01]# 宿主机
[rootzyl-server ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd3c420a9d03 1179bafa65b3 /bin/bash 2 minutes ago Up 2 minutes funny_mccarthy
f0e149830cef nginx /docker-entrypoint.… About an hour ago Up About an hour 0.0.0.0:32769-80/tcp, :::32769-80/tcp nginx02
a562312cab24 nginx /docker-entrypoint.… About an hour ago Up About an hour 0.0.0.0:32768-80/tcp, :::32768-80/tcp nginx01
99974acec585 portainer/portainer /portainer 11 days ago Up 2 hours 0.0.0.0:8088-9000/tcp, :::8088-9000/tcp blissful_mclaren###查看卷挂载目录
[rootzyl-server ~]# docker inspect bd3c420a9d03##卷挂载成功
[rootzyl-server _data]# cd /var/lib/docker/volumes/0b1be7a1e5b351e70dcf5b172e6a6b834f6b8f0f9fd72cb718793fc1ddab6b8d/_data
[rootzyl-server _data]# ls
test.java
[rootzyl-server _data]# 在刚构建的容器内创建文件容器外也有。这种方式未来使用较多因为我们需要构建自己的镜像假如构建镜像时没有挂载卷则需要手动挂载使用 -v 卷名容器内路径方式。
2.2 Dockerfile构建过程
Dockerfile 是面向开发的需要发布项目、制作镜像就需要编写Dockerfile文件这个文件十分简单
Docker镜像逐渐成为企业交付的标准必须要掌握
构建三步骤开发、部署、运维 · 编写Dockerfile文件定义了一切步骤源代码 · docker build命令构建镜像最终发布和运行产品 · docker run依镜像运行容器实例
Dockerfile内容基础知识 1每条保留字指令都必须为大写字母且后面要跟随至少一个参数 2指令按照从上到下顺序执行 3#表示注释 4每条指令都会创建一个新的镜像层并对镜像进行提交
Docker执行Dockerfile的大致流程 1docker从基础镜像运行一个容器 2执行一条指令并对容器作出修改 3执行类似docker commit的操作提交一个新的镜像层 4docker再基于刚提交的镜像运行一个新容器 5执行dockerfile中的下一条指令直到所有指令都执行完成
2.3 Dockerfile指令 1、FROM 指定一个已存在的基础镜像当做模板镜像本身就是分层的这里的From就是指定基础层。此指令必需放在有效指令的第一行。怎么选择合适的镜像呢
对于不同的软件官方都提供了相关的docker镜像比如nginx、redis、mysql、httpd、tomcat等服务类的镜像也有操作系统类如centos、ubuntu、debian等。建议使用官方镜像比较安全。e.g.FROM ubuntu
FROM nginx
如上示例可以指定Ubuntu这种操作系统镜像作为基础镜像也可以指定类似nginx这种已经二次应用镜像当做基础镜像。2、LABEL 指定镜像元数据如镜像作者等LABEL keyvalue keyvalue keyvalue ...e.g.LABEL com.example.vendorACME Incorporated
LABEL com.example.label-with-valuefoo
LABEL version1.0
LABEL descriptionThis text illustrates \
that label-values can span multiple lines.3、MAINTAINER 指定镜像作者信息
MAINTAINER name
此指令已过时用LABEL代替e.g.MAINTAINER zyl zyl163.com
#用LABEL代替
LABEL maintainerzyl zyl163.com4、RUN 镜像构建时需要执行的shell命令注意Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层会造成镜像膨胀过大。最佳实践可以的话尽量将多个run合并减少容器层数文件层数。e.g.#shell 格式
RUN 命令 #exec 格式
RUN [可执行文件, 参数1, 参数2]5、ADD 复制和解包文件,指定本地目录中的文件到容器中,可认为是增强版的COPY不仅支持COPY还支持解缩。
说明如果src是目录只复制目录中的内容而非目录本身
如果src是本地打包或压缩文件如gzip, bzip2 xz 将解包
如果src是一个 URL 下载后的文件权限自动设置为 6006、WORKDIR 镜像的工作目录7、VOLUME 挂载的目录8、EXPOSE 暴露端口告诉 Docker 服务端容器暴露的端口号供互联系统使用。EXPOSE 仅仅是声明容器打算使用什么端口而已并不会自动在宿主进行端口映射因此在启动容器时需要通过 -P 或-p Docker 主机会分配一个端口转发到指定暴露的端口才可以使用9、COPY 复制文本
复制本地主机的 为 Dockerfile 所在目录的相对路径到容器中的 。e.g.
COPY hom* /mydir/ COPY hom?.txt /mydir/10、CMD 容器启动命令指定启动容器时默认执行的命令即如果docker run没有指定任何的执行命令或者dockerfile里面也没有ENTRYPOINT那么就会使用执行CMD指定的默认的命令每个 Dockerfile 只能有一条 CMD 命令。如指定了多条只有最后一条被执行如果用户启动容器时指定了运行的命令如docker run xxx /bin/bash则/bin/bash 会覆盖 CMD 指定的命令11、ENTRYPOINT 入口点功能类似于CMD配置容器启动后执行的命令及参数并且不可被 docker run 提供的参数覆盖而是追加如果docker run命令有参数那么参数全部都会作为ENTRYPOINT的参数。如果docker run后面没有额外参数但是dockerfile中的CMD里有即上面CMD的第三种用法那么CMD的全部内容会作为ENTRYPOINT的参数可以通过docker run –entrypoint 参数在运行时替换使用CMD要在运行时重新写命令才能追加运行参数ENTRYPOINT则可以运行时接受新参数每个 Dockerfile 中只能有一个 ENTRYPOINT当指定多个时只有最后一个生效12、ONBUILD 子镜像引用父镜像的指令可以用来配置当创建当前镜像的子镜像时会自动触发执行的指令。13、ENV 设置环境变量指定一个环境变量会被后续 RUN 指令使用并在容器运行时保持Dockerfile文件指令总结
2.4 实战—构建自己的一个centos
1、创建有关dockerfile目录
[rootzyl-server ~]# mkdir dockerfile
[rootzyl-server ~]# ll
total 4
-rw-------. 1 root root 1419 Aug 12 20:31 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 Aug 29 23:30 dockerfile
drwxr-xr-x. 2 root root 51 Aug 28 22:50 docker-test-volume
[rootzyl-server ~]# cd dockerfile/
[rootzyl-server dockerfile]# ll
total 0
[rootzyl-server dockerfile]# vi mydockerfile
[rootzyl-server dockerfile]# 2、编写构建文件
FROM centos MAINTAINER zylzyl163.comENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vimRUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATHCMD echo -----end-----CMD /bin/bash3、通过dockerfile文件构建镜像
[rootzyl-server dockerfile]# docker build -f mydockerfile -t mycentos:1.0 .报错通过dockerfile yum -y install vim 安装 vim 时 从仓库 ‘appstream’ 下载元数据失败由于镜像列表中没有 URL不能准备内部镜像列表。
CentOS Linux 8 - AppStream 75 B/s | 38 B 00:00
Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlist: No URLs in mirrorlist
The command /bin/sh -c yum -y install vim returned a non-zero code: 1解决办法
这是因为Centos8于2021年年底停止了服务使用yum源安装时候就会报错Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”这时我们需要在dockerfile文件指定centos版本小于8版本
FROM centos:centos7MAINTAINER zylzyl163.comENV MYPATH /usr/localWORKDIR $MYPATHRUN yum -y install vimRUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATHCMD echo -----end-----CMD /bin/bash再次构建镜像
[rootzyl-server dockerfile]# docker build -f mydockerfile -t mycentos:1.0 .
..............................
..............................
Successfully built a3e6ef33a458
Successfully tagged mycentos:1.0###docker images 检查
[rootzyl-server dockerfile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.0 a3e6ef33a458 33 seconds ago 698MB
centos centos7 eeb6ee3f44bd 23 months ago 204MB
[rootzyl-server dockerfile]# 测试运行自己构建的镜像与官方的centos原生镜像 2.5 实战—构建自己的一个tomcat
创建工作目录 [rootzyl-server ~]# mkdir zyl-bulid
[rootzyl-server ~]# cd zyl-bulid/
[rootzyl-server zyl-bulid]# mkdir tomcat
[rootzyl-server zyl-bulid]# cd tomcat
[rootzyl-server tomcat]# ll
total 0
[rootzyl-server tomcat]#
1、准备jdk、tomcat压缩包
2、编写Dockerfile文件官方命名Dockerfilebuild 时会自动寻找这个文件就不再需要使用 -f 指定了 FROM centos:centos7MAINTAINER zylzyl163.comCOPY readme.txt /usr/local/readme.txtADD jdk-8u381-linux-x64.tar.gz /usr/local/ADD apache-tomcat-9.0.73.tar.gz /usr/local/RUN yum -y install vimENV MYPATH /usr/localWORKDIR $MYPATHENV JAVA_HOME /usr/local/jdk1.8.0_381
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.73ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.73ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-9.0.73/bin/startup.sh tail -F /usr/local/apache-tomcat-9.0.73/bin/logs/catalina.out 3、构建镜像
docker build -t mytomcat .
..............
..............
Successfully built 7b01ac741538
Successfully tagged mytomcat:latest4、docker images 检查
[rootzyl-server tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mytomcat latest 7b01ac741538 51 seconds ago 838MB
mycentos 1.0 a3e6ef33a458 46 minutes ago 698MB
centos centos7 eeb6ee3f44bd 23 months ago 204MB
centos latest 5d0da3dc9764 23 months ago 231MB
[rootzyl-server tomcat]#5、运行镜像
1、运行
[rootzyl-server tomcat]# docker run -d -p 9090:8080 --name zyl-tomcat -v /home/zyl/projects/test:/usr/local/apache-tomcat-9.0.73/webapps/test -v /home/zyl/projects/tomcatlogs/:/usr/local/apache-tomcat-9.0.73/logs mytomcat
1706ccdbea21e820785d4edef01774263553578e664edf3ceafab2104f85e794
[rootzyl-server tomcat]#2、进入容器
[rootzyl-server tomcat]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1706ccdbea21 mytomcat /bin/sh -c /usr/lo… 2 minutes ago Up 2 minutes 0.0.0.0:9090-8080/tcp, :::9090-8080/tcp zyl-tomcat
[rootzyl-server tomcat]# docker exec -it 1706ccdbea21 /bin/bash
[root1706ccdbea21 local]#3、测试访问[rootzyl-server tomcat]# curl localhost:9090浏览器访问http://192.168.234.10:9090/ 6、发布项目
由于做了卷挂载在本地就可直接编写项目发布 1、进入挂载目录/home/zyl/projects/test 2、新建index.html文件
!DOCTYPE html
html
head
meta charsetutf-8
/head
bodyh1醉颜凉的第一个web项目。/h1
pHello Apache Tomcat/10.0.14/p/body
/html7、访问项目注意test为卷挂载目录
http://192.168.234.10:9090/test/ 8、日志查看
[rootzyl-server tomcatlogs]# pwd
/home/zyl/projects/tomcatlogs
[rootzyl-server tomcatlogs]#[rootzyl-server tomcatlogs]# ll
total 24
-rw-r-----. 1 root root 6283 Aug 30 10:45 catalina.2023-08-30.log
-rw-r-----. 1 root root 6283 Aug 30 10:45 catalina.out
-rw-r-----. 1 root root 0 Aug 30 10:45 host-manager.2023-08-30.log
-rw-r-----. 1 root root 408 Aug 30 10:45 localhost.2023-08-30.log
-rw-r-----. 1 root root 1832 Aug 30 11:03 localhost_access_log.2023-08-30.txt
-rw-r-----. 1 root root 0 Aug 30 10:45 manager.2023-08-30.log
[rootzyl-server tomcatlogs]# 我们之后的一切都是使用Dockerfile镜像来发布运行
三、发布镜像至阿里云
Docker基础入门镜像、容器导入导出与私有仓库搭建
3.1、登录阿里云Docker Registry
[rootzyl-server tomcatlogs]# docker login --usernamezhb1999 registry.cn-hangzhou.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[rootzyl-server tomcatlogs]#3.2、使用 docker push 命令将centos镜像提交至阿里云
####将mytomcat 镜像IMAGE ID 7b01ac741538提交至阿里云
[rootzyl-server tomcatlogs]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mytomcat latest 7b01ac741538 34 minutes ago 838MB
mycentos 1.0 a3e6ef33a458 About an hour ago 698MB
centos centos7 eeb6ee3f44bd 23 months ago 204MB
centos latest 5d0da3dc9764 23 months ago 231MB
[rootzyl-server tomcatlogs]#### 推送
[rootzyl-server tomcatlogs]# docker tag 7b01ac741538 registry.cn-hangzhou.aliyuncs.com/zhaohaibao/mytomcat:9.0
[rootzyl-server tomcatlogs]# docker push registry.cn-hangzhou.aliyuncs.com/zhaohaibao/mytomcat:9.0 提交发布的时候也是按层级进行提交的发布时带上版本号
3.3、阿里云镜像仓库查看 四、总结—温故知新图片来源于网络 The End点点关注收藏不迷路 文章转载自: http://www.morning.qbccg.cn.gov.cn.qbccg.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn http://www.morning.tjwfk.cn.gov.cn.tjwfk.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.cbchz.cn.gov.cn.cbchz.cn http://www.morning.byrlg.cn.gov.cn.byrlg.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.wklhn.cn.gov.cn.wklhn.cn http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn http://www.morning.kdlzz.cn.gov.cn.kdlzz.cn http://www.morning.fmrd.cn.gov.cn.fmrd.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn http://www.morning.hrdx.cn.gov.cn.hrdx.cn http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn http://www.morning.pmsl.cn.gov.cn.pmsl.cn http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn http://www.morning.qfqld.cn.gov.cn.qfqld.cn http://www.morning.clxpp.cn.gov.cn.clxpp.cn http://www.morning.fmry.cn.gov.cn.fmry.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.yhpl.cn.gov.cn.yhpl.cn http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn http://www.morning.rlsd.cn.gov.cn.rlsd.cn http://www.morning.jnrry.cn.gov.cn.jnrry.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn http://www.morning.qscsy.cn.gov.cn.qscsy.cn http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn http://www.morning.jwbnm.cn.gov.cn.jwbnm.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.yqsq.cn.gov.cn.yqsq.cn http://www.morning.qptbn.cn.gov.cn.qptbn.cn http://www.morning.yrqb.cn.gov.cn.yrqb.cn http://www.morning.wfqcs.cn.gov.cn.wfqcs.cn http://www.morning.cznsq.cn.gov.cn.cznsq.cn http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn http://www.morning.pamdeer.com.gov.cn.pamdeer.com http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn http://www.morning.bjsites.com.gov.cn.bjsites.com http://www.morning.fsrtm.cn.gov.cn.fsrtm.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.ndnhf.cn.gov.cn.ndnhf.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.yrdkl.cn.gov.cn.yrdkl.cn http://www.morning.nxfuke.com.gov.cn.nxfuke.com http://www.morning.wkmyt.cn.gov.cn.wkmyt.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn http://www.morning.qlpyn.cn.gov.cn.qlpyn.cn http://www.morning.blzrj.cn.gov.cn.blzrj.cn http://www.morning.nknt.cn.gov.cn.nknt.cn http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn http://www.morning.qwbht.cn.gov.cn.qwbht.cn http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.gcthj.cn.gov.cn.gcthj.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.bztzm.cn.gov.cn.bztzm.cn http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.gjlml.cn.gov.cn.gjlml.cn