首页 文章 精选 留言 我的

精选列表

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

Linux系统CentOS6、CentOS7手动修改IP地址

CentOS_v6 1.打开文件 sh 复制代码 vi /etc/sysconfig/network-scripts/ifcfg-eth0 2.编辑 sh 复制代码 BOOTPROTO=static DNS1=10.0.0.1 IPADDR=10.0.0.70 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 3.保存退出 sh 复制代码 :x 4.重启网络服务 sh 复制代码 service network restart 5.查看修改结果 sh 复制代码 ifconfig CentOS_v7 1.查看网络接口 sh 复制代码 nmcli dev status 2.打开文件(eno16777728为刚刚查看接口的名称) sh 复制代码 vi /etc/sysconfig/network-scripts/ifcfg-ens32 vi /etc/sysconfig/network-scripts/ifcfg-ens192 3.编辑 sh 复制代码 BOOTPROTO=static DNS1=10.0.0.1 IPADDR=10.0.0.70 NETMASK=255.255.255.0 GATEWAY=10.0.0.1 4.保存退出 sh 复制代码 :x 5.重启网络服务 sh 复制代码 service network restart 6.查看修改结果 sh 复制代码 ip addr

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

CentOS7设置SWAP分区,小内存服务器的救世主

前言 Swap分区在系统的物理内存(这里应该是运行内存)不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。 设置 1.添加SWAP分区 sh 复制代码 cd / && dd if=/dev/zero of=swapfile bs=1024 count=4194304 chmod 600 /swapfile && mkswap /swapfile swapon /swapfile && swapon -s echo "/swapfile swap swap defaults 0 0" >> /etc/fstab 注: count=4194304中4194304为交换分区大小 4194304=102410244大小为4G 交换区大小设置有个参考依据,物理内存小于4G则SWAP设置为物理内存的两倍、物理内存等于4G则SWAP设置为4G、物理内存大于4G则SWAP设置为物理内存的1/2。 2.重启系统 sh 复制代码 shutdown -r now 3.查看分区结果 sh 复制代码 free -m 4.关闭交换空间 sh 复制代码 cd / && swapoff swapfile && rm -rf swapfile

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

Centos7 yum rpm命令大全

rpm命令 rpm包,由“-”、“.”构成,包名、版本信息、版本号、运行平台 对已安装软件信息的查询 rpm -qa 查询已安装的软件 rpm -qf 文件名绝对路径 文件名的绝对路径 rpm -ql 软件名 查询已安装的软件包都安装到何处 软件名:rpm包去除平台信息和后缀信息 1 2 rpm -qi 软件名 查询一个已安装软件包的信息 rpm -qc 软件名 查看已安装软件的配置文件 rpm -qd 软件名 查看已安装软件的文档安装位置 rpm -qR 软件名 查看已安装软件依赖包和文件 对未安装软件信息的查询 rpm -qpi rpm文件 查看一个软件包的用途和版本信息 rpm -qpl rpm文件 查看一个软件包所包含的文件 rpm -qpd rpm文件 查看软件包的文档所在位置 rpm -qpc rpm文件 查看软件包的配置文件 rpm -qpR rpm文件 查看软件包的依赖关系 软件包的安装、升级、删除 rpm -ivh rpm文件 安装rpm包 rpm -Uvh rpm文件 更新rpm包 rpm -e 软件名 删除rpm包 rpm -e 软件名 –nodeps 不管依赖关系,强制删除软件 rpm –import 签名文件 导入签名 rpm --import RPM-GPG-KEY 1 2 yum命令 yum= yellow dog updater, modified 主要功能更方便添加、删除、更新rpm包,自动解决依赖性问题,便于管理大量系统的更新问题 同时配置多个资源库(repository)简介的配置文件(/etc/yum.conf自动解决增加或删除rpm包时遇到的依赖性问题,方便保持rpm数据库的一致性) yum安装,rpm -ivh yum-*.noarch.rpm在第一次启用yum之前要先导入系统的RPM-GPG-KEY 第一次使用yum管理软件时,yum会自动下载需要的headers放置在/var/cache/yum目录下 rpm包更新 yum check-update 查看可以更新的软件包 yum update 更新所有的软件包 yum update kernel 更新指定的软件包 yum upgrade 大规模更新升级 rpm包安装和删除 yum install xxx[服务名] 安装rpm包 yum remove xxx[服务名] 删除rpm包 yum缓存信息 yum clean packages 清除缓存的rpm包文件 yum clean headers 清除缓存的rpm头文件 yum clean old headers 清除缓存中旧的头文件 yum clean all 清除缓存中旧的rpm头文件和包文件 查询软件包信息 yum list 列出资源库中所有可以安装或更新的rpm包 yum list firefox* 列出资源库中可以安装、可以更新、已安装的指定rpm包 yum list update 列出资源库中可以更新的rpm包 yum list installed 列出所有已安装的rpm包 yum list extras 列出已安装但不包含在资源库中rpm包 ps:通过网站下载安装的rpm包 1 2 yum info 列出资源库中所有可以安装或更新的rpm包信息 yum info firefox* 列出资源库可以安装或更新的指定的rpm的信息 yum info update 列出资源库中可以更新的rpm包信息 yum info installed 列出已安装的所有rpm包信息 yum info extras 列出已安装到时不包含在资源库中rpm包信息 yum search firefox 搜索匹配特定字符的rpm包 yum provides firefox 搜索包含特定文件的rpm包

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

CentOS7下搭建Kubernetes集群

1、测试环境 操作系统:CentOS Linux release 7.4.1708 操作机 192.168.1.200 kube-master 192.168.1.210 kube-minion-1 192.168.1.211 kube-minion-2 192.168.1.212 kube-minion-3 192.168.1.213 2、准备工作 2.1 所有服务器设置静态IP 在 /etc/sysconfig/network-scripts 路径下找到 ifcfg-,代表具体网卡,本文修改的网卡是 ifcfg-enp0s3 ONBOOT=yes #开机启动 BOOTPROTO=static #静态IP IPADDR=192.168.1.200 #本机地址 NETMASK=255.255.255.0 #子网掩码 GATEWAY=192.168.1.1 #默认网关 2.2 所有服务器设置DNS 配置文件/etc/sysconfig/network # Created by anaconda DNS1=192.168.1.1 DNS2=8.8.8.8 2.3 所有服务器修改hostname hostnamectl --static set-hostname [主机名] 注:修改成与/etc/hosts对应的相同名称! 2.4 操作机向所有服务器添加公钥实现免密码登录 通过ssh-keygen -t rsa和ssh-copy-id命令,不再赘述 2.5 在操作机安装Ansible yum install ansible 2.6 配置Ansible 编辑/etc/ansible/hosts,在末尾添加服务器信息,添加组:kube、master、nodes: [kube] 192.168.1.[210:213] [master] 192.168.1.210 [nodes] 192.168.1.[211:213] 2.7 测试Ansible 查询kube组内所有服务器启动运行时间: ansible kube -a 'uptime' 2.8 所有服务器安装EPEL扩展源 ansible kube -m shell -a 'yum -y install epel-release' 2.9 所有服务器修改/etc/hosts ansible kube -m shell -a 'echo -e "192.168.1.210 kube-master\n192.168.1.211 kube-minion-1\n192.168.1.212 kube-minion-2\n192.168.1.213 kube-minion-3" >> /etc/hosts' 注:如果不加参数-m shell,会默认使用command模块导致添加失败 2.10 查看所有主机的/etc/hosts ansible kube -a 'cat /etc/hosts' 2.11 所有服务器安装Docker ansible kube -m shell -a 'yum -y install docker' 或 ansible kube -m yum -a 'name=docker state=present' 2.12 查看所有服务器是否成功安装Docker ansible kube -m yum -a 'name=docker state=present' 2.13 所有服务器设置Docker开机启动并启动服务 ansible kube -m service -a 'name=docker state=restarted enabled=yes' 2.14 检查所有服务器Docker服务是否正常启动 ansible kube -m shell -a 'systemctl status docker' 2.15 所有服务器安装时间同步工具NTP ansible kube -m yum -a 'name=ntp state=present' 注:NTP配置文件在/etc/ntp.conf,可以对NTP服务器进行设置,NTP服务器可访问http://www.pool.ntp.org/zh/查看,pool.ntp.org是一个高可用时间服务器虚拟集群项目,网站建议使用下列默认域名,每个域名会每小时随机一组NTP服务器,进行时间同步时它会随机返回离你较近的NTP服务器。 server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org server 3.pool.ntp.org 2.16 所有服务器启动NTP服务并设开机启动 ansible kube -m service -a 'name=ntpd state=restarted enabled=yes' 2.17 查看所有服务器NTP服务是否正常开启 ansible kube -m shell -a 'systemctl status ntpd' 2.18 查看所有服务器获得到的NTP服务器列表 ansible kube -a 'ntpq -p' 注:NTP服务器列表可能需要等几分钟后才能获得并完成对时,每个服务器获得的NTP服务器不一样是正常的。 3、安装配置Kubernetes 以下步骤参考Kubernetes官网教程:https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/ 3.1 所有服务器配置YUM库源 ansible kube -m shell -a 'echo "[virt7-docker-common-release] name=virt7-docker-common-release baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/ gpgcheck=0" > /etc/yum.repos.d/virt7-docker-common-release.repo' 3.2 所有服务器安装Kubernetes,etcd,flannel ansible kube -m shell -a 'yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd flannel' 3.3 所有服务器修改/etc/kubernetes/config配置文件 默认内容: ### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kube-apiserver.service # kube-controller-manager.service # kube-scheduler.service # kubelet.service # kube-proxy.service # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="--logtostderr=true" # journal message level, 0 is debug KUBE_LOG_LEVEL="--v=0" # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV="--allow-privileged=false" # How the controller-manager, scheduler, and proxy find the apiserver KUBE_MASTER="--master=http://127.0.0.1:8080" 需要把KUBE_MASTER改成: KUBE_MASTER="--master=http://kube-master:8080" 操作机执行修改命令: ansible kube -m shell -a 'echo "### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kube-apiserver.service # kube-controller-manager.service # kube-scheduler.service # kubelet.service # kube-proxy.service # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR=\"--logtostderr=true\" # journal message level, 0 is debug KUBE_LOG_LEVEL=\"--v=0\" # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV=\"--allow-privileged=false\" # How the controller-manager, scheduler, and proxy find the apiserver KUBE_MASTER=\"--master=http://kube-master:8080\"" > /etc/kubernetes/config' 3.4 所有服务器关掉SELinux和防火墙,并重启 ansible kube -m shell -a 'setenforce 0; systemctl disable firewalld; systemctl stop firewalld; reboot' 3.5 kube-master修改etcd配置文件 配置文件在/etc/etcd/etcd.conf,注意确认配置文件中的以下参数与下文一致,主要是两个localhost改成0.0.0.0 # [member] ETCD_NAME=default ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" #[cluster] ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379" 3.6 kube-master修改apiserver配置文件 打开/etc/kubernetes/apiserver,用以下内容覆盖: # The address on the local server to listen to. KUBE_API_ADDRESS="--address=0.0.0.0" # The port on the local server to listen on. KUBE_API_PORT="--port=8080" # Port kubelets listen on KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster KUBE_ETCD_SERVERS="--etcd-servers=http://kube-master:2379" # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # default admission control policies KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" # Add your own! KUBE_API_ARGS="" 注:KUBE_ADMISSION_CONTROL里去掉了ServiceAccount 3.7 kube-master上启动ETCD systemctl start etcd etcdctl mkdir /kube-centos/network etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }" 3.8 所有服务器上修改flannel配置 配置文件/etc/sysconfig/flanneld,修改成以下内容: # Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS="http://kube-master:2379" # etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX="/kube-centos/network" # Any additional options that you want to pass #FLANNEL_OPTIONS="" 批量修改指令: ansible kube -m shell -a 'echo "# Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS=\"http://kube-master:2379\" # etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX=\"/kube-centos/network\" # Any additional options that you want to pass #FLANNEL_OPTIONS=\"\"" > /etc/sysconfig/flanneld' 3.9 kube-master上启动服务 for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler flanneld; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done 3.10 所有nodes服务器配置kubelet 配置文件/etc/kubernetes/kubelet,改为以下内容: # The address for the info server to serve on KUBELET_ADDRESS="--address=0.0.0.0" # The port for the info server to serve on KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname # Check the node number! KUBELET_HOSTNAME="--hostname-override=kube-minion-n" # Location of the api-server KUBELET_API_SERVER="--api-servers=http://kube-master:8080" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" # Add your own! KUBELET_ARGS="" 注:这里注释掉了KUBELET_HOSTNAME,是为了使用服务器主机名当kubelet名 批量操作指令: ansible nodes -m shell -a 'echo "# The address for the info server to serve on KUBELET_ADDRESS=\"--address=0.0.0.0\" # The port for the info server to serve on KUBELET_PORT=\"--port=10250\" # You may leave this blank to use the actual hostname # Check the node number! KUBELET_HOSTNAME=\"kube-minion-n\" # Location of the api-server KUBELET_API_SERVER=\"--api-servers=http://kube-master:8080\" # Add your own! KUBELET_ARGS=\"\"" >/etc/kubernetes/kubelet' 注:KUBELET_HOSTNAME要改成和/etc/hosts里的一致 3.11 所有nodes服务器启动服务 ansible nodes -m shell -a 'for SERVICES in kube-proxy kubelet flanneld docker; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done' 3.12 kube-master上启动Kuberneters集群 kubectl config set-cluster default-cluster --server=http://kube-master:8080 kubectl config set-context default-context --cluster=default-cluster --user=default-admin kubectl config use-context default-context kubectl get nodes 3.13 大功告成!~ 目前为止Kubernetes就搭建完了,拍拍自己肩膀说干的不错小伙~ :P 4、搭建Dashboard 4.1 获得Dashboard的Docker镜像 需要用到下列两个Docker镜像: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 registry.access.redhat.com/rhel7/pod-infrastructure:latest 由于国内被屏蔽无法直接下载到,所以要用可以访问的主机下载后添加到所有主机里。也可以通过docker tag命令添加到Docker私有库后使用。 操作指令: # 导出镜像 docker save gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 > dashboard.tar # 导入镜像 docker load < dashboard.tar 4.2 编辑Dashboard的YAML 编辑kubernetes-dashboard.yaml,内容如下: kind: Deployment apiVersion: extensions/v1beta1 metadata: labels: app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: replicas: 1 selector: matchLabels: app: kubernetes-dashboard template: metadata: labels: app: kubernetes-dashboard # Comment the following annotation if Dashboard must not be deployed on master annotations: scheduler.alpha.kubernetes.io/tolerations: | [ { "key": "dedicated", "operator": "Equal", "value": "master", "effect": "NoSchedule" } ] spec: containers: - name: kubernetes-dashboard image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 imagePullPolicy: IfNotPresent ports: - containerPort: 9090 protocol: TCP args: # Uncomment the following line to manually specify Kubernetes API server Host # If not specified, Dashboard will attempt to auto discover the API server and connect # to it. Uncomment only if the default does not work. - --apiserver-host=http://192.168.1.210:8080 #注意这里是master的api的地址,要写master的IP,写域名会报错提示访问不到 livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 30 timeoutSeconds: 30 --- kind: Service apiVersion: v1 metadata: labels: app: kubernetes-dashboard name: kubernetes-dashboard namespace: kube-system spec: type: NodePort ports: - port: 80 targetPort: 9090 selector: app: kubernetes-dashboard 4.2 部署Dashboard 在kube-master上运行: #开启Dashboard kubectl create -f kubernetes-dashboard.yaml #查看pod运行状态 kubectl get pods --all-namespaces #返回结果示例: #NAMESPACE NAME READY STATUS #RESTARTS AGE #kube-system kubernetes-dashboard-3345393181-6vq94 1/1 Running 0 44m #kube-system zl-redis-1545002913-89r4m 1/1 Running 0 38m #kube-system zl-redis-1545002913-cbgv5 1/1 Running 0 38m #查看单个pod的描述 kubectl describe pod/[pod名字] --namespace=[命名空间] #例:kubectl describe pod/zl-redis-1545002913-cbgv5 --namespace=kube-system #查看pod日志 kubectl logs -f [pod名字] --namespace=[命名空间] #例:kubectl logs -f zl-redis-1545002913-cbgv5 --namespace=kube-system 4.4 浏览器访问 访问kube-master网址:http://192.168.1.210:8080/ui 本文转自 zl1030 51CTO博客,原文链接:http://blog.51cto.com/zl1030/2048816

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

CentOS7 搭建docker registry 私库

10.11.3.71 docker 私库 10.11.3.72 客户端 安装docker 环境 yum -y install docker 2.docker registry 私库镜像 docker pull registry 3.将docker 设置为开机重启并启动 systemctl start docker systemctl enable docker 5.启动私库存镜像的一个容器: docker run -d -p 5000:5000 --name myRegistry --privileged=true -v /opt/registry:/tmp/registry --restart=always registry 6.在两台机器中的 /etc/hosts 加上以下信息: 10.11.3.71 node-1 10.11.3.72 node-2 7.在客户端中的 /etc/sysconfig/docker 加上以下信息: ADD_REGISTRY='--add-registry node-1:5000' INSECURE_REGISTRY='--insecure-registry node-1:5000' 8.重启 私库服务器,上传镜像 [root@node-1 ~]# docker pull centos [root@node-1 ~]# docker tag d123f4e55e12 node-1:5000/centos_test [root@node-1 ~]# docker push node-1:5000/centos_test The push refers to a repository [node-1:5000/centos_test] cf516324493c: Pushed latest: digest: sha256:224d7b12549c04bba833d4626a5c51113290e55bd754d39f72d1a437539b3c68 size: 529 9.查看 镜像私库上刚上传的镜像: [root@node-1 ~]# curl http://node-1:5000/v2/_catalog {"repositories":["centos_test"]} 到这里docker 私库就搭建完成。

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

CentOS7 安装 docker-ce

Docker CE 安装过程 更新系统源 $ sudo yum -y update 安装yum-utils工具 $ sudo yum -y install yum-utils # 将软件包添加至本地缓存 $ sudo yum makecache fast 安装 Docker CE 资源源 $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装 docker $ sudo yum -y install docker-ce 启动 docker $ sudo systemctl start docker 测试 docker $ sudo docker run hello-world 配置普通用户使用docker a) 查看是否存在 docker 用户组 $ cat /etc/group | grep docker 如果不存在 docker 用户组,自行创建: $ sudo groupadd docker b) 添加当前用户到 docker 组中 $ sudo gpasswd -a ${USER} docker c) 重启 docker service $ sudo systemctl restart docker 系统服务配置 服务文件路径 $ sudo /usr/lib/systemd/system/<名称>.service 常见服务配置命令 通过使用 systemctl 命令来管理服务的开启和关闭,服务可以直接使用名称,或者名称添加*.service来表示,比如 docker 可以使用 docker.service 来进行管理,同时也可以直接使用 docker 进行管理。 启动服务 $ sudo systemctl start docker.service 设置开机启动 $ sudo systemctl enable docker.service 设置停止开机启动 $ sudo systemctl disable docker.service 设置停止服务 $ sudo systemctl stop docker.service 查看服务状态 $ sudo systemctl status docker.service 查看系统所有服务 $ sudo systemctl list-units --type=service 参考 docker-ce安装与搭建私有仓库

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

centos7基于lnmp配置wordpress

1.下载安装WordPress wget http://wordpress.org/latest.zip #下载WordPress安装文件 unzip latest.zip #解压安装文件 由于我的主机装有discuz 所以会有点问题 先把discuz的文件全删了研究下WordPress 后面再研究两个共存的事 rm -rf var/www/html #删除 mkdir -p /var/www/html #创建网站根目录 cp -rf wordpress/* /var/www/html/ #复制安装文件到网站根目录 chmod -R 777 /var/www/html #更改根目录权限 2.数据库创建WordPress数据库 mysql -u root -p >create database wordpress; >grant all privileges on wordpress.* to wordpress@'localhost' identified by 'password'; >flush privileges; >exit 3.修改WordPress配置文件 cd /var/www/html #进入目录 cp wp-config-sample.php wp-config.php #复制一个文件 vi wp-config.php #编辑配置文件 #修改如下内容 /** The name of the database for WordPress */ define('DB_NAME', 'wordpress'); #数据库名称 /** MySQL database username */ define('DB_USER', '#你的用户'); #数据库用户 /** MySQL database password */ define('DB_PASSWORD', '#你的密码'); #数据库密码 /** MySQL hostname */ define('DB_HOST', 'localhost'); #主机 可改可不改 systemctl restart nginx systemctl restart mariadb #重启服务 在浏览器中打开 192.168.100.13/wordpress 登陆wordpress界面 4.我打开WordPress界面的时候出现了404代码 修改nginx文件 vi /etc/nginx/nginx.conf #在server{ }里添加以下内容 if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; systemctl restart nginx systemctl restart mariadb #重启服务 打开网址 192.168.100.13/wordpress 登陆开始配置WordPress

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

ECS上搭建Docker(CentOS7)

本文讲述Docker在CentOS系统上的部署过程。Ubuntu系统下安装docker,您可以点击此处查看。更多详细的实践您可以参考docker实践文档 适用对象 适用于熟悉Linux操作系统,刚开始使用阿里云ECS的开发者。 主要内容 部署docker docker基本用法 镜像制作 部署docker 本文主要说明手动安装docker的操作步骤,您也可以选择在云市场购买相应镜像,一键部署云服务器。 本文实践操作系统版本为CentOS 7.2 64 3.10.0-514.6.2.el7.x86_64。 Docker要求64位的系统且内核版本至少为3.10 1、添加yum源。 # yum install epel-release –y # yum clean all # yum list 2、安装并运行Docker。 # yum install docker-io –y # systemctl start docker 3、检查安装结果。 # docker info 出现以下xin说明信息则表明安装成功。 docker基本用法 1、Docker守护进程管理。 # systemctl start docker #运行Docker守护进程 # systemctl stop docker #停止Docker守护进程 # systemctl restart docker #重启Docker守护进程 2、镜像管理。 下载基础镜像,具体操作可参考如何下载docker镜像,本文使用的是来自阿里云仓库的Apache镜像。您可在阿里云docker市场搜索更多镜像。 # docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 修改标签,由于阿里云仓库镜像的镜像名称很长,可以修改镜像标签以便记忆区分。 # docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1 查看已有镜像。 # docker images 强制删除镜像。 # docker rmi –f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 3、容器管理。e121d5f99e1e是执行docker images命令查询到的IMAGE ID,使用docker run命令进入容器。 # docker run –ti e121d5f99e1e /bin/bash 使用exit可以退出当前容器。run命令加上–d参数可以在后台运行容器,—name指定容器命名为apache。 # docker run -d --name apache e121d5f99e1e 进入后台运行的容器。 # docker exec -ti apache /bin/bash 将容器做成镜像。 # docker commit containerID/containerName newImageName:tag 为了方便测试和恢复,先将源镜像运行起来后再做一个命名简单的镜像做测试。 # docker commit 4c8066cd8c01 apachephp:v1 运行容器并将宿主机的8080端口映射到容器里去。 # docker run -d -p 8080:80 apachephp:v1 在浏览器输入宿主机ip加8080端口访问测试,出现以下内容则说明运行成功。 镜像制作 1、准备dockerfile内容。 # vim Dockerfile FROM apachephp:v1 #声明基础镜像来源 MAINTAINER DTSTACK #声明镜像拥有者 RUN mkdir /dtstact #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行 ENTRYPOINT ping www.aliyun.com #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。 2、构建镜像。 docker build -t webcentos:v1 . # . 是Dockerfile文件的路径,不能忽略 docker images #查看是否创建成功 docker run –d webcentos:v1 #后台运行容器 docker ps #查看当前运行中的容器 docker ps –a #查看所有容器,包括未运行中的 docker logs CONTAINER ID/IMAGE #如未查看到刚才运行的容器,则用容器id或者名字查看启动日志排错 docker commit fb2844b6c070 dtstackweb:v1 #commit 后接容器id 和构建新镜像的名称和版本号。 docker images #列出本地(已下载的和本地创建的)镜像 docker push #将镜像推送至远程仓库,默认为 Docker Hub 3、将镜像推送到registry。 docker login --username=dtstack_plus registry.cn-shanghai.aliyuncs.com #执行后输入镜像仓库密码 docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/dtstack123/test:[镜像版本号] docker push registry.cn-shanghai.aliyuncs.com/dtstack123/test:[镜像版本号] 在镜像仓库能查看到镜像版本信息则说明push成功 其中[ImageId],[镜像版本号]请您根据自己的镜像信息进行填写 https://help.aliyun.com/document_detail/51853.html https://yq.aliyun.com/articles/60601?spm=5176.100239.blogcont68337.17.O9fc0l

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

Centos7编译安装kafka-manager

简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容: 管理多个集群 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发) 运行首选副本选举 使用选项生成分区分配以选择要使用的代理 运行分区重新分配(基于生成的分配) 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置) 删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true) 主题列表现在指示标记为删除的主题(仅支持0.8.2+) 批量生成多个主题的分区分配,并可选择要使用的代理 批量运行重新分配多个主题的分区 将分区添加到现有主题 更新现有主题的配置 支持ldap用户认证 kafka-manager 项目地址:https://github.com/yahoo/kafka-manager 安装 当前版本已更新至3.0.0.1,本次安装最新版本。 下载安装包 下载方式: 下载源码包:https://github.com/yahoo/kafka-manager/releases (不同版本) 克隆源代码:git clone https://github.com/yahoo/CMAK.git (最新版本) 编译 根据README提示,新版本编译依赖java-11,所以首先要准备java-11环境(直接到官网下载解压即可)。 使用sbt编译 进入源码目录进行编译。 /path/to/cmak/sbt -java-home /path/to/java-11 clean dist -java-home:在系统环境java版本和当前需要java版本不一致时,使用该参数指定java家目录。 这是一个漫长的过程,耐心等待... 编译完成后会提示,编译好的文件保存到了:/path/to/cmak/target/universal/cmak-3.0.0.1.zip 在此提供编译好的cmak-3.0.0.1.zip 密码: pjxp 。 配置 将上述cmak-3.0.0.1.zip文件拷贝到/path/to/kafka-manager 目录下,解压。修改配置文件 conf/application.conf: kafka-manager.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181" cmak.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181" kafka-manager支持ldap认证,这里不做详述。 启动 默认使用9000端口,如果端口占用,可以指定端口。 bin/cmak -Dconfig.file=conf/application.conf -java-home /path/to/jdk-11 -Dhttp.port=9001 到浏览器访问 http://ip:9001 即可。 创建kafka集群 使用systemctl管理kafka-manager服务 创建文件 /usr/lib/systemd/system/kafka-manager.service : [Unit] Description=kafka-manager server service After=network.target [Service] WorkingDirectory=/path/to/kafka-manager/cmak-3.0.0.1 ExecStart=/path/to/kafka-manager/cmak-3.0.0.1/bin/cmak -Dconfig.file=/path/to/kafka-manager/cmak-3.0.0.1/conf/application.conf -java-home /path/to/jdk-11.0.6 -Dhttp.port=9001 Restart=on-failure RestartSec=60 User=work Group=work [Install] WantedBy=multi-user.target 完成上述配置后,执行 systemctl daemon-reload 。 启动、停止、重启 $ systemctl start kafka-manager $ systemctl stop kafka-manager $ systemctl restart kafka-manager # 加入开机启动 $ systemctl enable kafka-manager 配置日志切割 /path/to/kafka-manager/cmak-3.0.0.1/logs/application.log { daily rotate 10 dateext missingok notifempty } 参考 kafka管理神器-kafkamanager Tips: 千万不要让开发搞运维工作... F*CK(蜜汁自信要不得)

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

Centos7 Tomcat9 安装笔记

版权声明:本文由董可伦首发于https://dongkelun.com,非商业转载请注明作者及原创出处。商业转载请联系作者本人。 https://blog.csdn.net/dkl12/article/details/84140327 我的原创地址:https://dongkelun.com/2018/10/23/tomcatConf/ 前言 有两个月没更新博客,部分原因是这两月的工作一直没写Spark程序,而是在写前端,所以虽然期间一直想写但是没有想出从哪方面入手。后端框架用的SpringBoot,前端用的是JSP、BootStrap、Echarts等,前端主要做成了大屏的样子,之前写过一段时间前端,但是没有整理笔记,导致现在再写,有些东西还要去翻原来的代码,比较麻烦,所以一直想整理一些前端的笔记,但是由于不是专业的前端,不是写的很深入,只想把自己实现的的效果对应的代码总结一下,如果只写代码的话,看起来比较单调,所以我想能有写一些前端页面,在博客里放上连接,这样看起来会比较直观。现在的博客用的是hexo,代码托管在coding上,有些页面,比如菜单、整体布局的效果在这上面不太好展现,所以想在自己的服务器用SpringBoot搭一个完整的系统,那么就要从头开始,从搭建SpringBoot程序开始,虽然SpringBoot自身带了tomcat,但是我感觉自己安装的tomcat用起来会比较方便,这就是为什么先写tomcat的安装了。 之前用过也配置过tomcat,但是没有从头到尾的在服务器上配置,下面就记录一下我的安装过程及碰到的问题,方便后面我在其他的服务上部署。 1、前提 首先安装配置JDK,我这里用的是JDK1.8.0_45 2、下载 首先到官网http://tomcat.apache.org/下载安装包,我下载的是最新版的Tomcat9 wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz 3、解压并改名 tar -zxvf apache-tomcat-9.0.12.tar.gz mv apache-tomcat-9.0.12 tomcat 4、启动 cd tomcat/ bin/startup.sh 关闭tomcat命令 bin/shutdown.sh 5、验证 在浏览器里输入 ip:8080,如果出现下图所示的界面就代表启动成功了。 到这里其实就可以使用tomcat了,可以将应用程序的war包放到tomcat的webapps目录下,也可以自己写一个简单的页面进行测试,如: mkdir webapps/test vim webapps/test/test.jsp test tomcat 然后在浏览器里输入 ip:8080/test/test.jsp,就会看到如下页面 6、问题及解决 6.1 点击tomcat首页的Manager App进入管理页面,报没有权限的错误 bin/shutdown.sh vim webapps/manager/META-INF/context.xml 将Context里面的注释掉即可 <Context antiResourceLocking="false" privileged="true" > <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>--> </Context> 再启动,验证问题是否还存在。如果成功了,则会出现输入用户名、密码的验证弹出框 参考:https://blog.csdn.net/cai_eternal/article/details/76069314 6.2 增加管理界面的用户名、密码 tomcat默认应该是没有设置用户、密码的、那么需要我们自己改一下配置文件来添加用户名、密码 bin/shutdown.sh vim conf/tomcat-users.xml 在tomcat-users里添加 <user username="admin" password="1234" roles="manager-gui"/> 参考https://blog.csdn.net/txwtech/article/details/80013261 然后启动,就可以出入上面的设置,进入管理页面了 6.3 关闭tomcat时报错(jdk1.8.x的bug) 不确保每个jdk1.8版本或者在每个服务器上都有这个bug 错误如下: bin/shutdown.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /opt/jdk1.8.0_45/jre Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Oct 24, 2018 1:42:39 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running. Oct 24, 2018 1:42:39 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:498) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:403) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497) 解决办法,例如我的jdk安装目录为:/opt/jdk1.8.0_45 vim /opt/jdk1.8.0_45/jre/lib/security/java.security 找到 securerandom.source=file:/dev/random 改为 securerandom.source=file:/dev/./urandom 然后关掉tomcat再重启就好了 参考:https://stackoverflow.com/questions/33868983/severe-could-not-contact-localhost8005-tomcat-may-not-be-running-error-while

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

centos7之Java开发环境构建

CensOS7环境 我个人的博客环境如下: 希望这个教程可以帮助到linux新手朋友们或者其他在安装软件时遇到问题的朋友们 当然了,百度上也有很多类似这样的教程,我个人贴出来,一来为分享,二来以后自己用到时,上手就有,不必担心为此耗费比较长的时间。 该教程是我个人使用xmind写的,只是通过导出工具导出为html,才会显示如下,不过导出的显示信息,不会影响正常阅读。 本人亲自实践过,有任何问题可以留言 Java开发基本环境 1.jdk的安装 rpm安装 获取rpm安装包 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm jdk官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装rpm rpm -ivh jdk-8u131-linux-x64.rpm java -version 显示对应的Java版本信息 2.tomcat安装 首先在浏览器输入tomcat,进入tomcat官网 https://tomcat.apache.org/ 选择对应的版本,将链接复制下来,然后再Linux上执行wget命令进行下载 wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.52/bin/apache-tomcat-8.0.52.tar.gz 解压tomcat tar -xzvf apache-tomcat-8.0.52.tar.gz 3.mysql安装 获得tar包 wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 解压tar包 tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 安装(存在依赖关系,依次安装) rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 在安装这个的时候可能会报错,通过这个方法可以解决 获取相关依赖包并安装 下载 wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm 安装 rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm yum安装相关包 yum install net-tools 数据库初始化 mysqld --initialize --user=mysql 获得随机密码 cat /var/log/mysqld.log 启动数据库 systemctl start mysqld.service 进入mysql mysql -uroot -p 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 4. maven安装 安装命令 yum install maven 安装成功 mvn -v 显示对应的版本信息 5.git安装 安装命令 yum install git 6.nginx安装 准备相关的依赖库 yum install gcc gcc-c++ autoconf automake yun -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz 解压 tar-xzvf pcre-8.35.tar.gz ./configure make && make install 编译安装 获取安装包 wget http://nginx.org/download/nginx-1.6.2.tar.gz 解压该包 tar xzvf nginx-1.6.2.tar.gz /configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/home/yc/pcre-8.35

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

vmware中设置centos7访问外网

在这里我使用网络连接中的NAT网络配置 1.安装好虚拟机后本地会多出现两个虚拟网卡VMnet1和VMnet8(以太网2和3),本地网路共享设置如下 2.虚拟机的网络设置选择NAT连接设置如下,子网IP可通过ipconfig查看本地VMnet8,如我本地VMnet8ip为:192.168.137.1 3.开启虚拟机,然后设置我们的ip vi /etc/sysconfig/network-scripts/ifcfg-ens33添加 IPADDR=192.168.137.3 NETMASK=255.255.255.0 GATEWAY=192.168.137.2 修改ONBOOT=yes(开机启用)BOOTPROTO=static(静态ip) 4.设置虚拟机DNS vi /etc/NetworkManager/NetworkManager.conf 添加一行内容dns=none 然后重启网络管理:systemctl restart NetworkManager.service 修改域名解析配置文件vi /etc/resolv.conf nameserver 192.168.137.1 nameserver 8.8.8.8 nameserver 114.114.114.114 最后重启网络service network restart 本地工具登陆机器后ping www.baidu.com可ping通即配置成功。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

用户登录
用户注册