首页 文章 精选 留言 我的

精选列表

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

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 同时你需要手动删除用户生成的配置文件,此略!!!

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

docker 容器部署

Docker 容器 : 容器是Docker又一核心的概念,简单来说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 接下来具体介绍如何管理一个容器,包括创建、启动和停止等。 启动容器有两种方式: (1.)第一种是基于镜像新建一个容器并启动。 所需要的命令主要为docker run 实例: -t:让docker分配一个为终端(paseudo-tty)并绑定到容器的标准输入上 -i:让容器的标准输入保持打开(即交互式),可以使用-name给容器起个形象的名称。 在交互模式下,用户可以通过所创建的终端来输入命令 例如: 容器的核心为所执行的应用程序,所需要的资源都是应用程序运行所必需的。除此之外,并没有其它的资源。可以在伪终端中利用ps或top来查看进程信息。 可见,容器中仅允许了指定的bash应用。这种特点使得Docker对资源利用率极高,是货真价实的轻量级虚拟化。 退出容器的方式: logout exit Ctrl+d Ctrl+c Ctrl -p + Ctrl -q 下面的命令是输出一个hello world 消息,终止容器。 当利用docker run 来创建容器时 ,Docker在后台运行的标准操作包括: 1.检查本地是否存在指定的镜像,不存在就从公有仓库下载 2.利用镜像创建并启动一个容器 3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 5.从地址池配置一个IP地址给容器 6.执行用户指定的应用程序 7.执行完毕后容器被终止 查看容器: (2.)第二种是将在终止状态(stoped)的容器重新启动。 可以利用docker start 命令,直接将一个已经终止的容器启动运行 可以使用docker stop 来终止一个运行的容器。此外,当docker容器中指定的应用终结时,容器也自动 终止。终止状态的容器可以用docker ps -a 命令看到。 重启一个容器: 二、守护进程方式去运行docker 1.更多的时候,需要让docker容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。 例如: 或者 容器启动后会返回一个唯一的ID值,也可以通过docker ps 命令来查看容器信息 1.docker卡 run -d 运行提个新的容器,我们通过-d 命令来查看容器信息。 2.centos:centos6 是一个我们想要在内部运行命令的镜像。 3./bin/sh -c 是我们想要在容器内部运行的命令 4.while true;do echo hello weibo;sleep 1; done这是一个简单的脚本,我们仅仅是每秒打印一 次 hello world 一直到我们结束它。 2.用 docker inspect查看容器的信息 用docker inspect 查看容器的IP地址 用docker inspect 查看容器执行的程序 3.进入容器: 在使用-d参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,有很多种方法,包括使 用docker attach命令或nsenter命令。 (1.) 使用docker attach进入容器: 1.docker attache 允许我们进入后台进程 2.--sig-proxy=false 不使用容器转发信号,允许我们使用Ctrl -c来退出,执行docker ps查看在后台运行。 但是使用 attache 命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会 同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。 3.也可以执行docker exec进入运行的容器 (2.)使用nsenter进入容器: 安装:nsenter工具在util-Linux包2.23版本后包含。如果系统中util-Linux包没有该命令,可以按照 下面的方法从源码安装 #wgethttps://www.kernel.org/pub/utils/util-linux/v2.24/util-linux-2.24.tar.gz #tar util-linux-2.24.tar.gz #cd util-linux-2.24 # ./configure --without-ncurses&& make nsenter # cp nsenter /usr/local/bin 注意:nsenter可以访问另一个进程的名字空间。nsenter要正常工作需要有root权限。 庆幸的是centos7使用的是util-linux-2.23,所以就直接使用系统提供的util-linux包了。 为了使用nsenter命令工具连接到容器,还需要找到容器的第一个进程的pid,可以通过下面的命令获取到。 附:更简单的,建议大家下载 .bashrc_docker,并将内容放到 .bashrc中 #wget ~https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker #echo "[-f ~/.bashrc_docker] && ~/.bashrc_docker">>~/.bashrc #source ~/.bashrc 这个文件中定义了很多方便使用Docker的命令,例如docker-pid可以获取某个容器的pid;而docker- enter 可以进入容器或直接在容器内执行命令。 echo $(docker-pid<container>) docker-enter<container>ls 三、容器的导入和导出以及删除容器 (1.)导出容器 如果要导出本地某个容器,可以 使用docker export命令。 (2.)导入容器 可以使用docker import 从容器快照文件中再导入为镜像 除此之外,也可以通过指定URL或者某个目录来导入。例如: #docker importhttp://example.com/exampleimage.tgzexample/imagerepo 注意: docker load 和 docker import 的区别: 用户既可以使用docker load 来导入镜像存储文件到本地镜像库,也可以使用docker import来导入一个 容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保 存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入 时可以重新指定标签等元数据信息。 删除容器: 可以使用 docker rm来删除一个处于终止状态的容器 如果要删除一个运行中的容器,可以添加 -f 参数。docker会发送SIGKILL信号给容器。 批量删除多个容器:

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册