首页 文章 精选 留言 我的

精选列表

搜索[部署],共10004篇文章
优秀的个人博客,低调大师

Hadoop3单机部署,实现最简伪集群

1.节点说明 ip hostname 说明 10.0.0.120 hadoop-all 主节点+数据节点 2.环境准备 需要JDK1.8运行环境,搭建请参考[Jdk安装(Linux,MacOS,Windows)] 3.设置主机名 sh 复制代码 # 主节点 hostnamectl set-hostname hadoop-all 4.设置host sh 复制代码 # 所有节点配置 echo "10.0.0.120 hadoop-all" >> /etc/hosts 5.设置ssh免密码登录(主节点) sh 复制代码 # 设置主节点自身ssh免密码登录以及主节点对各个数据节点ssh免密码登录 # 以下操作在主节点进行 # 生成公钥 ssh-keygen -t rsa # 向主节点(本机)复制公钥 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 验证,输入yes,如果此时没有要求输入密码则配置成功 ssh hadoop-all 6.开放端口 sh 复制代码 # 主节点 firewall-cmd --add-port=9870/tcp && firewall-cmd --add-port=9870/tcp --permanent firewall-cmd --add-port=8088/tcp && firewall-cmd --add-port=8088/tcp --permanent firewall-cmd --add-port=9000/tcp && firewall-cmd --add-port=9000/tcp --permanent firewall-cmd --add-port=50090/tcp && firewall-cmd --add-port=50090/tcp --permanent # 或者关闭关闭防火墙 systemctl stop firewalld.service && systemctl disable firewalld.service 7.准备hadoop安装包 sh 复制代码 # 下载地址 http://hadoop.apache.org/ # 镜像地址 https://mirrors.cloud.tencent.com/apache/hadoop/common/ # 下载hadoop-3.3.6.tar.gz并解压到指定目录,如/data0/hadoop/hadoop-3.3.6 mkdir -p /data0/hadoop/ tar -zxvf hadoop-3.3.6.tar.gz # 创建hadoop数据存放目录 mkdir -p /data1/hadoop/repo 8.修改配置 8.1.进入配置文件目录 sh 复制代码 cd /data0/hadoop/hadoop-3.3.6/etc/hadoop 8.2.修改hadoop-env.sh配置文件 sh 复制代码 # 编辑文件 vi hadoop-env.sh # 添加 export JAVA_HOME=/data0/java/jdk1.8.0_361 export HADOOP_LOG_DIR=/data1/hadoop/repo/logs/hadoop # /data0/java/jdk1.8.0_291为jdk安装目录 # /data1/hadoop/repo为hadoop数据存放目录 8.3.修改core-site.xml配置文件 sh 复制代码 # 编辑文件 vi core-site.xml # 修改configuration节点配置 <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop-all:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/data1/hadoop/repo</value> </property> </configuration> # hadoop-all为主节点主机名 # 9000为端口 8.4.修改hdfs-site.xml配置文件 sh 复制代码 # 编辑文件 vi hdfs-site.xml # 修改configuration节点配置 <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> # 1为数据副本个数 8.5.修改mapred-site.xml配置文件 sh 复制代码 # 编辑文件 vi mapred-site.xml # 修改configuration节点配置 <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 8.6.修改yarn-site.xml配置文件 sh 复制代码 # 编辑文件 vi yarn-site.xml # 修改configuration节点配置 <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration> 9.修改hadoop启动/停止配置 9.1.进入启动脚本目录 sh 复制代码 cd /data0/hadoop/hadoop-3.3.6/sbin 9.2.修改dfs.sh的启动/停止命令 sh 复制代码 # 编辑文件 vi start-dfs.sh vi stop-dfs.sh # 都添加 HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root 9.3.修改yarn.sh的启动/停止命令 sh 复制代码 # 编辑文件 vi start-yarn.sh vi stop-yarn.sh # 都添加 YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root 10.格式化hdfs sh 复制代码 # 进入hadoop根目录 cd /data0/hadoop/hadoop-3.3.6 # 格式化 bin/hdfs namenode -format 11.启动/停止 sh 复制代码 # 进入hadoop根目录 cd /data0/hadoop/hadoop-3.3.6/sbin # 启动 ./start-all.sh # 停止 ./stop-all.sh # 查看启动状态 jps # 主节点启动[ResourceManager,NameNode,SecondaryNameNode,DataNode,NodeManager] 12.web查看状态 sh 复制代码 # 浏览器访问 10.0.0.120:9870 10.0.0.10:8088 13.配置环境变量 sh 复制代码 # 打开文件 vi ~/.bash_profile # 添加环境变量 # HADOOP export HADOOP_HOME=/data0/hadoop/hadoop-3.3.6 export PATH=$HADOOP_HOME/bin:$PATH #保存退出 :x # 让配置马上生效 source ~/.bash_profile

优秀的个人博客,低调大师

部署Mahout

一、Mahout简介 Mahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。ApacheMahout项目已经发展到了它的第三个年头,目前已经有了三个公共发行版本。Mahout包含许多实现,包括集群、分类、推荐过滤、频繁子项挖掘。此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中。 (就是他,骑在象头上的那个Mahout) 在Mahout实现的机器学习算法: 算法类 算法名 中文名 分类算法 Logistic Regression 逻辑回归 Bayesian 贝叶斯 SVM 支持向量机 Perceptron 感知器算法 Neural Network 神经网络 Random Forests 随机森林 Restricted Boltzmann Machines 有限波尔兹曼机 聚类算法 Canopy Clustering Canopy聚类 K-means Clustering K均值算法 Fuzzy K-means 模糊K均值 Expectation Maximization EM聚类(期望最大化聚类) Mean Shift Clustering 均值漂移聚类 Hierarchical Clustering 层次聚类 Dirichlet Process Clustering 狄里克雷过程聚类 Latent Dirichlet Allocation LDA聚类 Spectral Clustering 谱聚类 关联规则挖掘 Parallel FP Growth Algorithm 并行FP Growth算法 回归 Locally Weighted Linear Regression 局部加权线性回归 降维/维约简 Singular Value Decomposition 奇异值分解 Principal Components Analysis 主成分分析 Independent Component Analysis 独立成分分析 Gaussian Discriminative Analysis 高斯判别分析 进化算法 并行化了Watchmaker框架 推荐/协同过滤 Non-distributed recommenders Taste(UserCF, ItemCF, SlopeOne) Distributed Recommenders ItemCF 向量相似度计算 RowSimilarityJob 计算列间相似度 VectorDistanceJob 计算向量间距离 非Map-Reduce算法 Hidden Markov Models 隐马尔科夫模型 集合方法扩展 Collections 扩展了java的Collections类 方法一、Mahout安装、配置 一、下载Mahout http://archive.apache.org/dist/mahout/ 二、解压 tar -zxvfmahout-distribution-0.9.tar.gz 三、配置环境变量 3.1、配置Mahout环境变量 # set mahout environment export MAHOUT_HOME=/home/yujianxin/mahout/mahout-distribution-0.9 export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH 3.2、配置Mahout所需的Hadoop环境变量 # set hadoop environment export HADOOP_HOME=/home/yujianxin/hadoop/hadoop-1.1.2export HADOOP_CONF_DIR=$HADOOP_HOME/conf export PATH=$PATH:$HADOOP_HOME/bin export HADOOP_HOME_WARN_SUPPRESS=not_null 四、验证Mahout是否安装成功 执行命令mahout。若列出一些算法,则成功,如图: 五、使用Mahout 之入门级使用 5.1、启动Hadoop 5.2、下载测试数据 http://archive.ics.uci.edu/ml/databases/synthetic_control/链接中的synthetic_control.data 5.3、上传测试数据 hadoop fs -put synthetic_control.data/user/root/testdata 5.4 使用Mahout中的kmeans聚类算法,执行命令: mahout -core org.apache.mahout.clustering.syntheticcontrol.kmeans.Job 花费9分钟左右完成聚类 。 5.5 查看聚类结果 执行hadoop fs -ls /user/root/output,查看聚类结果。 方法二、Mahout安装与配置 Mahout是Hadoop的一种高级应用。运行Mahout需要提前安装好Hadoop。Hadoop的安装网上很多,并不复杂,这里不再讲述,接下来阐述怎么安装Mahout。1:下载二进制解压安装。到http://labs.renren.com/apache-mirror/mahout/0.7下载,我选择下载二进制包,直接解压及可。 hadoop@ubuntu:~$tar-zxvfmahout-distribution-0.7.tar.gz 2:配置环境变量:在/etc/profile,/home/hadoop/.bashrc中添加如下红色信息#set java environmentMAHOUT_HOME=/home/hadoop/mahout-distribution-0.7PIG_HOME=/home/hadoop/pig-0.9.2HBASE_HOME=/home/hadoop/hbase-0.94.3HIVE_HOME=/home/hadoop/hive-0.9.0HADOOP_HOME=/home/hadoop/hadoop-1.1.1JAVA_HOME=/home/hadoop/jdk1.7.0PATH=$JAVA_HOME/bin:$PIG_HOME/bin:$MAHOUT_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/conf:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HBASE_HOME/lib:$MAHOUT_HOME/lib:$PIG_HOME/lib:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jarexport MAHOUT_HOMEexport PIG_HOMEexport HBASE_HOMEexport HADOOP_HOMEexport JAVA_HOMEexport HIVE_HOMEexport PATHexport CLASSPATH3:启动hadoop,也可以用伪分布式来测试4:mahout --help #检查Mahout是否安装完好,看是否列出了一些算法5:mahout使用准备a.下载一个文件synthetic_control.data,下载地址http://archive.ics.uci.edu/ml/databases/synthetic_control/synthetic_control.data,并把这个文件放在$MAHOUT_HOME目录下。b.启动Hadoop:$HADOOP_HOME/bin/start-all.shc.创建测试目录testdata,并把数据导入到这个tastdata目录中(这里的目录的名字只能是testdata) hadoop@ubuntu:~/$hadoopfs-mkdirtestdata# hadoop@ubuntu:~/$hadoopfs-put/home/hadoop/mahout-distribution-0.7/synthetic_control.datatestdata d.使用kmeans算法(这会运行几分钟左右) hadoop@ubuntu:~/$hadoopjar/home/hadoop/mahout-distribution-0.7/mahout-examples-0.7-job.jarorg.apache.mahout.clustering.syntheticcontrol.kmeans.Job e.查看结果 hadoop@ubuntu:~/$hadoopfs-lsroutput 如果看到以下结果那么算法运行成功,你的安装也就成功了。clusteredPoints clusters-0 clusters-1 clusters-10 clusters-2 clusters-3 clusters-4 clusters-5 clusters-6 clusters-7 clusters-8 clusters-9 data

优秀的个人博客,低调大师

TOMCAT部署

# java下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html [root@kazihuo ~]# mkdir -pv /usr/java [root@kazihuo ~]# tar -axvf jdk-8u151-linux-x64.tar.gz -C /usr/java/ [root@kazihuo ~]# vim /etc/profile.d/java.sh #创建文件并添加以下信息; JAVA_HOME=/usr/java/jdk1.8.0_151 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH [root@kazihuo ~]# source /etc/profile.d/java.sh [root@kazihuo ~]# java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode) JAVA_HOME=/usr/java/jdk1.7.0_55 PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME [root@kazihuo ~]# wget -P /usr/local/http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz [root@kazihuo /usr/local]# tar -axvf apache-tomcat-8.5.24.tar.gz CATALINA_BASE=/usr/local/tomcat PATH=$CATALINA_BASE/bin:$PATH export CATALINA_BASE ------------------------------------------------------------- 作者: 罗穆瑞 出处: http://www.cnblogs.com/kazihuo/ 转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢! ------------------------------------------------------------------------------ 如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢! ------------------------------------------------------------------------------

优秀的个人博客,低调大师

Zabbix部署

Zabbix框架 server端:zabbix-server zabbix-server-mysql zabbix-get web端:zabbix-web zabbix-web-mysql agent端:zabbix-sender zabbix-agent 前提: 配好本地yum源,以便安装时自动解决依赖 环境: server:192.168.10.11 agent:192.168.10.12 mysql:192.168.10.10 配置本地域名解析 # cat /etc/hosts 192.168.10.11 node1.kazihuo.com node1 192.168.10.12 node2.kazihuo.com node2 配置HOSTNAME [root@node1 ~]# cat /etc/sysconfig/network node1.kazihuo.com [root@node1 ~]# cat /etc/hostname node1.kazihuo.com [root@node2 ~]# cat /etc/sysconfig/network node2.kazihuo.com [root@node2 ~]# cat /etc/hostname node2.kazihuo.com 说明: 因虚拟机环境有限,故zabbix-server也作为一台zabbix-agent使用,当其需要监控起来时要按照agent端进行配置,及修改对应的zabbix_agent.conf文件! 服务端配置: # wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm # yum -y install zabbix-release-3.2-1.el7.noarch.rpm # yum -y install zabbix zabbix-server zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent #安装完成后自动生成以下目录及文件 [root@node1 /etc/zabbix]# tree . ├── web │ └── maintenance.inc.php ├── zabbix_agentd.conf ├── zabbix_agentd.d │ └── userparameter_mysql.conf └── zabbix_server.conf 2 directories, 4 files [root@node1 /etc/httpd/conf.d]# ls zabbix.conf [root@node1 /usr/share/doc/zabbix-server-mysql-3.2.10]# ls AUTHORS ChangeLog COPYING create.sql.gz NEWS README [root@node1]# mysql -uroot -p<root_password> mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; [root@node1]# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -p zabbix [root@node1 ~]# cat /etc/zabbix/zabbix_server.conf|grep DB DBName=zabbix DBUser=zabbix DBHost=192.168.10.10 DBPassword=000000 [root@node1 ~]# cat /etc/php.ini [zabbix] php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga date.timezone = Asia/Shanghai #此配置也可在zabbix_server.conf的配置文件中配置,默认以包含,根据需求修改时区即可 [root@node1 ~]# systemctl start httpd.service [root@node1 ~]# systemctl start zabbix-server 客户端配置: [root@node2 ~]# yum -y install zabbix-sender zabbix-agent [root@node2 ~]# cat /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=192.168.10.11 ListenPort=10050 ServerActive=192.168.10.11 Hostname=node2.kazihuo.com [root@node2 ~]# systemctl start zabbix-agent 页面初始化 # 浏览器输入192.168.10.11/zabbix ,进入欢迎页面 # 检查所需插件是否OK # 配置zabbix连接的数据库 # 细节设置 # 安装完成 # zabbix初始化页面设置后生成对应的配置文件:/etc/zabbix/web/zabbix.conf.php # 默认的登录名及密码:Admin/zabbix ------------------------------------------------------------- 作者: 罗穆瑞 出处: http://www.cnblogs.com/kazihuo/ 转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢! ------------------------------------------------------------------------------ 如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢! ------------------------------------------------------------------------------

优秀的个人博客,低调大师

部署Docker

一、简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。 Docker的理念:一个容器只运行一个服务 Docker官网口号包含了Build,Shipand Run Any App,Anywhere,即任何应用,都可以构建、发布、运行于任何环境,将环境的影响因素降至最低,统一地掌控整个应用的生命周期。 Docker的官方文档:http://docs.docker.com/ 二、安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 、安装epel源 注释:默认CentOS6.x提供的yum源里没有docker的安装包,在这里我们借助EPEL源。 #rpm-ivhhttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm #sed-i's@^#@@'/etc/yum.repos.d/epel.repo #sed-i's@mirrorlist@#mirrorlist@'/etc/yum.repos.d/epel.repo 2 、安装docker #yum-yremovedocker #yuminstalldocker-io 3 、启动docker守护进程 #servicedockerstart #chkconfigdockeron 4 、检查docker是否已经正确安装并运行 #dockerinfo 5 、查看docker的版本 #docker-v 三、命令参数 1、docker命令帮助参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [root@localhost~] #docker Usage:docker[OPTIONS]COMMAND[arg...] Commands: attachAttachtoarunningcontainer buildBuildanimage from aDockerfile commitCreateanewimage from acontainer'schanges cpCopyfiles / folders from acontainer'sfilesystemtothehostpath createCreateanewcontainer diffInspectchangesonacontainer'sfilesystem eventsGetrealtimeevents from theserver exec Runacommand in arunningcontainer exportStreamthecontentsofacontainerasatararchive historyShowthehistoryofanimage images List images import Createanewfilesystemimage from thecontentsofatarball infoDisplaysystem - wideinformation inspectReturnlow - levelinformationonacontainer killKillarunningcontainer loadLoadanimage from atararchive loginRegister or log in toaDockerregistryserver logoutLogout from aDockerregistryserver logsFetchthelogsofacontainer portLookupthepublic - facingportthat is NAT - edtoPRIVATE_PORT pausePause all processeswithinacontainer ps List containers pullPullanimage or arepository from aDockerregistryserver pushPushanimage or arepositorytoaDockerregistryserver restartRestartarunningcontainer rmRemoveone or morecontainers rmiRemoveone or moreimages runRunacommand in anewcontainer saveSaveanimagetoatararchive searchSearch for animageontheDockerHub startStartastoppedcontainer stopStoparunningcontainer tagTaganimageintoarepository topLookuptherunningprocessesofacontainer unpauseUnpauseapausedcontainer versionShowtheDockerversioninformation waitBlockuntilacontainerstops,then print itsexitcode 2、比较常用命令参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 查看Docker的版本信息 #dockerversion 在DockerHub上搜索一个指定镜像 #dockersearch 在DockerHub上搜索一个指定镜像并至少有10颗星 #dockersearch-s10ubuntu 从一个Docker的注册服务器上拉取一个镜像或一个私有仓库 #dockerpullubuntu 查看镜像列表 #dockerimages 在一个新的容器中运行一个命令 #dockerrun 移除一个或多个镜像 #dockerrmi 移除一个或多个容器 #dockerrm 附着一个运行的容器 #dockerattach 运行一个命令在一个运行的容器中 #dockerexec 从一个Dockerfile文件中构建一个镜像 #dockerbuild 查看镜像构建历史 #dockerhistory 查看容器更为详细的配置信息 #dockerinspect 保存一个镜像对归档 tar 中 #dockersave 从一个归档 tar 中加载一个镜像 #dockerload 启动、停止、重启一个运行的容器 #dockerstart|stop|restart 杀掉一个正在运行的容器 #dockerkill 额外补充 进入容器命令: dockerattach:登陆到运行的容器中 docker exec :在宿主机上运行命令到容器内部,类似在打开一个容器的终端 dockernsenter:连接到容器,需要容器PID 四、创建ssh镜像和镜像打包 1、从Docker Hub上下载ubuntu镜像 1 2 3 4 [root@localhost~] #dockerpullubuntu:14.04 [root@localhost~] #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE ubuntu14.04b7cf8f0d9e823daysago188.3MB 2、基于镜像创建一个容器 1 2 3 4 [root@localhost~] #dockerrun-itubuntu:14.04/bin/bash [root@localhost~] #dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 88b6a8dfae4eubuntu:14.04 "/bin/bash" 3minutesagoUp3minutesmodest_yalow 3、进入容器安装ssh服务 1 2 3 4 5 6 7 8 9 root@88b6a8dfae4e:/ #apt-getupdate&&apt-getinstall-yopenssh-server root@0af7ccfd906e:/ #echo'root:redhat'|chpasswd root@10dbbd22172d:/ #mkdir/var/run/sshd root@10dbbd22172d:/ #sed-i's/PermitRootLoginwithout-password/PermitRootLoginyes/'/etc/ssh/sshd_config root@10dbbd22172d:/ #sed's@session\s*required\s*pam_loginuid.so@sessionoptionalpam_loginuid.so@g'-i/etc/pam.d/sshd root@10dbbd22172d:/ #exit [root@localhost~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 88b6a8dfae4eubuntu:14.04 "/bin/bash" 10minutesagoExited(130)18secondsagomodest_yalow 4、构建一个ssh的镜像 1 2 3 4 5 6 [root@localhost~] #dockercommit88b6a8dfae4ezhengyas/ubuntu:sshd 3f2225df36ff67cbda098318e83128f3965758eba3e4609a094c172b0c3b03c4 [root@localhost~] #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE zhengyas /ubuntu sshd3f2225df36ff21secondsago251.1MB ubuntu14.04b7cf8f0d9e823daysago188.3MB 5、基于新镜像运行一个ssh容器 1 2 3 4 5 [root@localhost~] #dockerrun-d-p2222:22zhengyas/ubuntu:sshd/usr/sbin/sshd-D 7ef47903cdb77ad9d98fd0dd3b102473d10ad3abea5311c030177db9ea9984c1 [root@localhost~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 7ef47903cdb7zhengyas /ubuntu :sshd "/usr/sbin/sshd-D" 4secondsagoUp4seconds0.0.0.0:2222->22 /tcp hungry_ritchie 6、测试ssh容器是否能够正常连接 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [root@localhost~] #sshroot192.168.0.104-p2222 ssh :Couldnotresolve hostname root192.168.0.104:Nameorservicenotknown [root@localhost~] #sshroot@192.168.0.104-p2222 Theauthenticityofhost '[192.168.0.104]:2222([192.168.0.104]:2222)' can'tbeestablished. RSAkeyfingerprintis0e:1e:4e:67:f3:4b:5a:c4:c2:f5:7b:e7:f0:2e:14:72. Areyousureyouwantto continue connecting( yes /no )? yes Warning:Permanentlyadded '[192.168.0.104]:2222' (RSA)tothelistofknownhosts. root@192.168.0.104'spassword: WelcometoUbuntu14.04LTS(GNU /Linux 3.2.0-61-genericx86_64) *Documentation:https: //help .ubuntu.com/ TheprogramsincludedwiththeUbuntusystemare free software; theexactdistributionterms for eachprogramaredescribed in the individualfiles in /usr/share/doc/ * /copyright . UbuntucomeswithABSOLUTELYNOWARRANTY,totheextentpermittedby applicablelaw. root@7ef47903cdb7:~ #ifconfig eth0Linkencap:EthernetHWaddr02:42:ac:11:00:03 inetaddr:172.17.0.3Bcast:0.0.0.0Mask:255.255.0.0 inet6addr:fe80::42:acff:fe11:3 /64 Scope:Link UPBROADCASTRUNNINGMTU:1500Metric:1 RXpackets:47errors:0dropped:0overruns:0frame:0 TXpackets:40errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RXbytes:5638(5.6KB)TXbytes:6521(6.5KB) loLinkencap:LocalLoopback inetaddr:127.0.0.1Mask:255.0.0.0 inet6addr:::1 /128 Scope:Host UPLOOPBACKRUNNINGMTU:65536Metric:1 RXpackets:0errors:0dropped:0overruns:0frame:0 TXpackets:0errors:0dropped:0overruns:0carrier:0 collisions:0txqueuelen:0 RXbytes:0(0.0B)TXbytes:0(0.0B) 7、镜像持久化,俗称镜像打包 镜像打包(Save) 1 [root@localhost~] #dockersavezhengyas/ubuntu>/root/sshd.tar 镜像导入(Load) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 实验模拟 1、删除此sshd容器 [root@localhost~] #dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 7ef47903cdb7zhengyas /ubuntu :sshd "/usr/sbin/sshd-D" 14minutesagoUp14minutes0.0.0.0:2222->22 /tcp hungry_ritchie [root@localhost~] #dockerstop7ef47903cdb7 7ef47903cdb7 [root@localhost~] #dockerrm7ef47903cdb7 7ef47903cdb7 2、删除sshd镜像 [root@localhost~] #dockerrmizhengyas/ubuntu:sshd Untagged:zhengyas /ubuntu :sshd Deleted:3f2225df36ff67cbda098318e83128f3965758eba3e4609a094c172b0c3b03c4 [root@localhost~] #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE ubuntu14.04b7cf8f0d9e823daysago188.3MB 3、导入打包的镜像 [root@localhost~] #dockerload</root/sshd.tar [root@localhost~] #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE zhengyas /ubuntu sshd3f2225df36ff18minutesago251.1MB ubuntu14.04b7cf8f0d9e823daysago188.3MB 五、基于Dockerfile来创建mysql镜像 1、创建Dockerfile文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@localhost~] #mkdirmysql_ubuntu [root@localhost~] #cdmysql_ubuntu/ [root@localhostmysql_ubuntu] #catDockerfile FROMubuntu:14.04 RUNapt-getupdate RUNapt-get-y install mysql-clientmysql-server RUN sed -i-e "s/^bind-address\s*=\s*127.0.0.1/bind-address=0.0.0.0/" /etc/mysql/my .cnf ADD. /startup .sh /opt/startup .sh EXPOSE3306 CMD[ "/bin/bash" , "/opt/startup.sh" ] 2、创建mysql服务启动脚本文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@localhostmysql_ubuntu] #catstartup.sh #!/bin/bash if [!-f /var/lib/mysql/ibdata1 ]; then mysql_install_db /usr/bin/mysqld_safe & sleep 10s echo "GRANTALLON*.*TOadmin@'%'IDENTIFIEDBY'changeme'WITHGRANTOPTION;FLUSHPRIVILEGES" |mysql killallmysqld sleep 10s fi /usr/bin/mysqld_safe 3、构建mysql镜像 1 #dockerbuild-tzhengys/mysql. 4、查看镜像 1 2 3 [root@localhost~] #dockerimages REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE zhengys /mysql latestf58add96ecb7Aboutaminuteago338.9MB 6、基于新镜像创建mysql容器 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@localhost~] #mkdir/data/mysql-p [root@localhost~] #dockerrun-d-p3306:3306-v/data/mysql:/var/lib/mysqlzhengys/mysql 0112ba90e4a30a13e4f3af26f4a5bcd73e91ae3afa881a36fadd34cd953d0ada [root@localhost~] #dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 0112ba90e4a3zhengys /mysql :latest" /bin/bash /opt/star 4secondsagoUp3seconds0.0.0.0:3306->3306 /tcp reverent_hawking [root@localhost~] #ll/data/mysql/ total28680 -rw-rw----.110310618874368Apr2517:46ibdata1 -rw-rw----.11031065242880Apr2519:09ib_logfile0 -rw-rw----.11031065242880Apr2517:45ib_logfile1 drwx------.2103root4096Apr2517:45mysql drwx------.21031064096Apr2517:45performance_schema 7、测试mysql容器 1 2 3 4 5 6 7 8 [root@localhost~] #mysql-uadmin-p123456-h192.168.0.104-P3306-e'showdatabases' +--------------------+ |Database| +--------------------+ |information_schema| |mysql| |performance_schema| +--------------------+ 或者提供一个登陆mysql客户端脚本 run-client.sh 1 2 3 4 5 6 7 8 9 #!/bin/sh TAG= "mysql" CONTAINER_ID=$(docker ps | grep $TAG| awk '{print$1}' ) IP=$(dockerinspect$CONTAINER_ID|python-c 'importjson,sys;obj=json.load(sys.stdin);printobj[0]["NetworkSettings"]["IPAddress"]' ) mysql-uadmin-p-h$IP 六、简化Docker和lxc 1、Lxc和Docker结构图 Linux = linux内核 + 用户空间(Lxc) Lxc(Linux Container):linux容器 = Cgroup + Namespaces Docker集装箱 = Lxc + images lxc功能包括资源管理和隔离机制。 资源管理:通过cgroup限制cpu和内存的使用 隔离机制:用户空间namespace都是独立的 LXC包集成了这些linux内核机制提供了一个用户空间容器对象,即是针对某一应用提供资源隔离和控制轻量级虚拟系统。 Docker对container的使用基本是建立在lxc基础之上的,然而lxc存在的问题是难以移动-难以通过标准化模板制作、重建、复制和移动container。 LXC依赖namespace来实现隔离性的。 让每个容器都有自已的命名空间,确保不同容器之间不会相互影响,让每个容器成为拥有自已进程和网络空间的虚拟环境,都成为一个独立运行的单位。 此外,lxc由内核cgroup来对各个容器(进程)使用的系统资源做严格的限制。 算算时间,学习Docker也有半个月时间了,到现在为止给我的第一感觉仍然是不习惯,或许是用传统虚拟化用习惯了,或许是自已对Docker研究过于肤浅,或许自已根本没有入门等等一些原因,在没有接触到Docker之前自已玩过lxc,使用起来特别顺手,网上都说Docker自动化了lxc的管理过程,能够自动在线下载相应的发行版本rootfs Docker的火热程度,使我们做IT的不得不去深入研究、学习 好吧!今天就先到这里,后续会继续更大家聊聊Docker技术. 本文转自zys467754239 51CTO博客,原文链接:http://blog.51cto.com/467754239/1638301,如需转载请自行联系原作者

优秀的个人博客,低调大师

docker部署

环境:ubuntu-14.04.4-server-amd64 1、更换阿里云源 备份源配置文件: $ sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup $ sudo vim /etc/apt/sources.list 删除文件内容,更新为: deb http://mirrors.aliyun.com/ubuntu trusty main restricted deb-src http://mirrors.aliyun.com/ubuntu trusty main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://mirrors.aliyun.com/ubuntu trusty-updates main restricted deb-src http://mirrors.aliyun.com/ubuntu trusty-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://mirrors.aliyun.com/ubuntu trusty universe deb-src http://mirrors.aliyun.com/ubuntu trusty universe deb http://mirrors.aliyun.com/ubuntu trusty-updates universe deb-src http://mirrors.aliyun.com/ubuntu trusty-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://mirrors.aliyun.com/ubuntu trusty multiverse deb-src http://mirrors.aliyun.com/ubuntu trusty multiverse deb http://mirrors.aliyun.com/ubuntu trusty-updates multiverse deb-src http://mirrors.aliyun.com/ubuntu trusty-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://mirrors.aliyun.com/ubuntu trusty-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu trusty-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu trusty-security main restricted deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted deb http://security.ubuntu.com/ubuntu trusty-security universe deb-src http://security.ubuntu.com/ubuntu trusty-security universe deb http://security.ubuntu.com/ubuntu trusty-security multiverse deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse 执行如下命令刷新: $ sudo apt-get clean $ sudo apt-get update 2、检查内核版本: $ uname -r 4.2.0-27-generic 3、更新包信息确保APT工作于https模式并且安装好CA证书: $ sudo apt-get update $apt-get install apt-transport-https ca-certificates 4、增加一个新GPG密钥: $ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D 5、新建docker.list文件并加入相关内容: $ sudo vim /etc/apt/sources.list.d/docker.list deb https://apt.dockerproject.org/repo ubuntu-trusty main 更新APT软件包索引: $ atp-get update 假如存在旧的repo则清除: $ apt-cache policy docker-engine 验证APT是否从正确的库中获取: $ apt-get purge lxc-docker 此命令下载一个测试图像并运行于一个容器中,它将打印一份欣喜然后自动退出。 6、安装linux-image-extra kernel package $ sudo apt-get update $ sudo apt-get install linux-image-extra-$(uname -r) 检查是否有安装apparmor $ whereis apparmor 没有的话 $ apt-get install -y apparmor $ sudo reboot 7、进入docker安装阶段 $ sudo apt-get update 安装docker $ sudo apt-get install docker-engine 启动docker服务 $ sudo service docker start 验证docker安装是否OK $ sudo docker run hello-world 8、创建一个docker组并加入当前用户 $ sudo usermod -aG docker ubuntu 验证 $ docker run hello-world 9、调整内存和交换分区 当运行docker出现如下报错: WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded. 需要做如下操作: $ sudo vim /etc/default/grub 设置GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" $ sudo update-grub $ sudo reboot 10、开启UFW转发 检查UFW是否安装并启动 $ sudo ufw status $ sudo vim /etc/default/ufw 设置DEFAULT_FORWARD_POLICY="ACCEPT" 重启UFW服务并使用新的配置 $ sudo ufw reload 放行2375端口 $ sudo ufw allow 2375/tcp 11、配置DNS服务器 当用台式机启动容器时报错: WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4] $ sudo vim /etc/default/docker 设置DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" 重启docker守护进程 $ sudo restart docker 关闭dnsmasq $ sudo vim /etc/NetworkManager/NetworkManager.conf 注释掉dns=dnsmasq 保存后重启NetworkManager和Docker $ sudo restart network-manager $ sudo restart docker 12、Ubuntu14.04.4版本安装docker后会将其服务设为开机自启动。 升级docker $ sudo apt-get upgrade docker-engine 卸载docker包 $ sudo apt-get purge docker-engine $ sudo apt-get autoremove --purge docker-engine 删除镜像、容器、卷 $ rm -rf /var/lib/docker 同时你需要手动删除用户生成的配置文件,此略!!!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册