(1)创建和使用私有仓库:
最快捷还是搭建本地的仓库服务器(注意:配置不当会导致漏洞)
此时会在本地启动一个私有仓库服务,监听端口为5000; 更新标签本地仓库地址并上传到私有仓库之中:
#可以以这个来测试是不是存在docker 5000未授权访问漏洞该功能是对于需要经常升级镜像内程序来说十分的方便,用户创建镜像发生更改的时候进行手动更新镜像,并能通过自动创建功能跟踪目标网络,一旦项目发现新的提交则自动执行创建;配置自动创建步骤如下:
Data Management,在使用Docker时候必然会在容器内产生数据,或者需要将容器内的数据进行备份,甚至多个容器之间进行数据共享,这时数据管理变得尤为重要;
容器中管理数据的主要有两种方式:
描述:是一个可供容器使用的数据目录,并且让文件系统提供很多有用的特性,数据卷的使用类似于Linux对目录或者文件进行mount操作;
Q:如何在容器内创建一个数据卷?
#### 创建一个web容器并创建一个数据卷挂载到容器的/webapp目录下(默认将宿主机/根映射到容器中webapp目录中)
# -v:将镜像的存放位置放在本地指定的路径上.
# -P:是允许外部访问容器需要暴露的port
# -d:是容器的后台运行守护
#cp 把容器文件copy到宿主机,或者把宿主机的文件copy到容器
挂载主机目录/文件作为数据卷:
# Docker挂载数据卷的默认权限 rw,ro[只读] //加入ro后数据卷的数据就无法修改了 #挂载一个本地文件作为数据卷(注意再挂载文件得时候尽量设置ro自读,防止inode不一致报错)
描述:IF用户需要在容器之间共享一些持续的数据,最简单的方式就是使用数据卷容器(实际上就是一个普通容器);
使用数据卷容器可以让用户在容器之间自由地升级和移动数据卷;
首先创建一个数据卷容器dbdata并在其中创建一个数据卷挂载到/dbdata上;
#然后在容器中进行使用 创建两个容器db1 / db2 #使用--volumes-from参数所挂载数据卷的容器自身并不需要保持运行状态 #修改目录中其中任何一个文件,其他容器的该目录都会改变 #删除挂载的容器(dbdata 、 db1 、db2)数据卷饼不会被自动的删除,必须在删除最后一个挂载着它容器时显示使用Docker rm -v 命令来指定同时删除关联的容器;
(1) 数据卷容器迁移数据
可以利用数据卷容器对其中的数据卷进行备份、恢复以实现数据的迁移;
#备份: 创建一个worker容器 ,将本地当前目录挂载到容器中backup目录,进行选择数据目录备份压缩
#恢复: 首先创建一个带有数据卷的容器dbdata2
#解压备份文件到挂载的数据卷中
补充说明::Z与:z的区别
#配置selinux标签如果使用selinux,可以添加z或z选项来修改挂载到容器中的主机文件或目录的selinux标签
#:z选项指示绑定挂载内容在多个容器之间共享。
#:Z选项表示绑定挂载内容是私有和非共享的。
#重要:当使用绑定与服务挂载时,selinux标签(:z和:Z)以及:ro将被忽略,设置了z选项以指定多个容器可以共享绑定挂载的内容,此时不能使用——mount标记修改selinux标签
大量互联网服务包括多个服务组件往往需要多个容器之间进行网络通信相互配合,Docker目前提供了映射容器端口与宿主主机和容器互联机制来为容器提网络服务;并且采用Linux系统知道的网络系统来实现对网络服务的支持使之能提供稳定支持以及快速的高性能转发;
当在一台未经过特殊网络配置的centos 或 ubuntu机器上安装完docker之后,在宿主机上通过ifconfig命令可以看到多了一块名为docker0的网卡;不难想到docker0就不只是一个简单的网卡设备了而是一个网桥。
#下图即为Docker默认网络模式(bridge模式)下的网络环境拓扑图,创建了docker0网桥,并以eth pair连接各容器的网络,容器中的数据通过docker0网桥转发到eth0网卡上。 #网桥(等同于交换机) #在Linux中,可以使用brctl命令查看和管理网桥(需要安装bridge-utils软件包),比如查看本机上的Linux网桥以及其上的端口: #除了使用docker0网桥外,还可以使用自己创建的网桥,比如创建一个名为br0的网桥,配置IP: #在Docker容器和外界通信的过程中,还涉及了数据包在多个网卡间的转发(如从docker0网卡转发到宿主机ens160网卡)
(1)端口映射实现访问容器
通过-P或者-p来指定端口,
容器的链接(Linking)系统是除了端口映射外的另一种可以与容器中应用进行交换的方式;它会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息;
Docker两种方式为容器公开连接信息:
#首先创建一个新的数据库容器,启动db容器的时候并没有使用-p与-P标记,避免了暴露数据库端口到外部网络上
#使db容器与web容器建立互联关系;
#web/db这表示web 容器链接到 db 容器,web 容器将被允许访问 db 容器的信息。
#使用env命令来查看web容器的环境变量
#起点汇总DB_开头的环境变量是提供web容器连接到db使用,前缀采用大写的链接别名
#容器有自己的内部网络和IP地址,使用docker inspect + 容器ID 可以获取所有的变量值; #然后打开80端口进行访问采用logs打印访问 #进行link关联容器使之能进行正常通信 #Step 3.
分别进入c1和c3容器使用ping命令测试其与c2的连通性,因为c1和c2都在backend网络中,所以两者可以连通。但是因为c3和c2不在一个网络中,所以两个容器之间不能连通: # 进入c1容器ping c2通、ping c3不通。其它两个容器就不进入演示了,大家自己可以试一下: # Step 4.
将c2连接加入到front网络中,使用exec进入c2中查看网卡信息,测试c2与c3的连通性后,可以发现两者已经连通
(4) 跨主机实现互通
通过添加路由路由的方式route
WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少。
本文章来源 Blog 站点(友链交换请邮我哟
):
更多学习笔记文章请关注 WeiyiGeek 公众账号
注:如需查看算法直接看《三》
构建生成器——生成模型 生成网络的结构也很简单,最后一层的激活函数选择tanh()函数的目的是将图片规范化到-1~1之间。
可以看到,在iteration=4000的时候,隐约有了手写数字的样子。
前面只是使用了简单的全连接网络来构建生成器和判别器,我们同样可以使用更复杂的卷积神经网络来构建生成器和判别器。 判别器
可以看到,采用卷积神经网络训练的效果要好很多很多。
累了,就写到这里吧哈哈哈.后续其他文章会更新新操作的.....五一快乐!