npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

light-deploy

v0.1.4

Published

1. 安装 # yum install docker -y # service start docker # chkconf on docker

Downloads

9

Readme

  1. 安装

yum install docker -y

service start docker

chkconf on docker

centos7 启动出错

yum install device-mapper-event-libs -y

  1. 创建镜像

docker build -t="alphabets/zabbix:v0.0.1" zabbix

docker build -t="alphabets/nginx:v0.0.1" nginx

docker build -t="alphabets/fluentd:v0.0.1" fluentd

docker build -t="alphabets/node:v0.0.1" node

docker build -t="alphabets/light:v0.0.1" light

docker build -t="alphabets/fastfix:v0.0.1" fastfix

  1. 常用命令

查看本地的镜像

docker images

启动镜像

docker run -p 80:80 -d --name zabbix 26f8955245bb

docker run --rm=true -p 8080:8080 -p 8889:22 --hostname=gitlab --name gitlab alphabets/gitlab:v0.0.1

docker run -d --rm=true -p 8080:8080 -p 29418:29418 --hostname=gitbucket --name gitbucket alphabets/gitbucket:v0.0.1

docker run -d --restart=always --add-host=db:10.165.46.250 --publish=5003:5003 --hostname=fastfix --name=fastfix alphabets/fastfix:v0.0.1

docker run -d --restart=always --add-host=db:10.165.46.250 --publish=7000:7000 --hostname=admin --name=admin alphabets/lightadmin:v0.1.0

docker run -d --restart=always --publish=4506:4506 --publish=4505:4505 --name=salt alphabets/salt:v0.0.1

查看容器列表

docker ps -a

SSH接入容器

docker exec -t -i 057df86d3418 /bin/bash

docker run --name zabbix -t -i 8768c02052ae /bin/bash


zabbix-agent

  1. CentOS7

iptables -A INPUT -m state --state NEW -p tcp --dport 10050 -j ACCEPT

iptables -A INPUT -m state --state NEW -p tcp --dport 10051 -j ACCEPT


docker run docker info docker images docker logs docker top 查看容器内的进程 docker exec docker stop docker rm 删除容器 docker ps -a 查看容器列表 docker rmi 删除镜像 docker cp 拷贝容器内文件

run

-i STDIN开启 -t 为容器分配tty终端 -d daemon模式启动 --name 设定容器名称 --restart 自动重启 --rm 自动删除

--privileged 允许操作iptables?

logs

-f 日志跟踪 -t 加时间戳

常用命令


命令行模式进入容器

docker exec -t -i 9b30e9a6c9a3 /bin/bash

删除所有容器

docker rm docker ps -a -q

备份volumn内的数据

docker cp $ID:/var/jenkins_home

docker build -t="alphabets/nginx:v0.0.1" nginx

查看绑定的VOLUMN

docker inspect -f '{{ .Volumes }}' source

疑问


  • jenkins的数据 怎么办?通过画面设定的内容,是否可以共享

  • nginx的log怎么办 使用通用的log容器?

tag做成

docker tag 24dd746e9b9f docker.light.cn/registry:latest

command


启动jenkins

docker run -p 8080:8080 -v /var/jenkins_home -d --name jenkins 4e288907973a

启动nginx 连接jenkins

docker run -p 80:80 --link jenkins:jenkins -d --name nginx 23a528ae15fc

启动数据容器

docker run --name data e42b62c80cb6 true

How to start pm2 server in a docker container

http://zgu.me/blog/2014/08/25/how-to-start-pm2-server-in-a-docker-container/

docker 服务无法启动

  • yum update device-mapper 来升级device-mapper

依赖的官方镜像

centos 7.1.1503 busybox latest registry 2.0.0

docker 内启动服务的方法

http://www.hilotech.jp/blog/it/290 http://thinkit.co.jp/story/2015/01/29/5501

  1. 切换centos版本 为最新,使用yum的时候有包冲突的问题
  2. 切换fakesystemd 到 systemd,为了使用服务启动多个进程
  3. 启动时,使用--privileged, 启动脚本指定为/sbin/init

    docker run -p 4505:4505 -p 4506:4506 --rm=true --privileged docker.alphabets.cn/salt /sbin/init

docker build -t="docker.alphabets.cn/registry" registry

docker build -t="docker.alphabets.cn/bind" bind

port docker registry - 5000 bind - 53 squid - 3128

删除所有容器

docker rm docker ps --no-trunc -aq

docker rmi $(docker images -q)

查询所有的 registry 的images

curl -X GET http://docker.light.cn:5000/v1/search

curl -O http://www.alphabets.cn/lib/ca-certificates.crt

container 导入

cat fastfix_data.tar | docker import - docker.light.cn/fastfix_data:0.0.1

备份容器数据

docker run --volumes-from fastfix_data --rm -v $(pwd):/backup docker.light.cn/busybox tar cvf /backup/data.tar /data

docker run --volumes-from fastfix_data --rm -v $(pwd):/backup docker.light.cn/busybox tar xvf /backup/data.tar

docker run --volumes-from fastfix_data --rm docker.light.cn/busybox ls -lh /data

拷贝文件

docker run -it --volumes-from site_data --rm -v $(pwd):/backup docker.alphabets.cn/data:0.0.1 sh

http://alvinhenrick.com/2015/01/26/docker-backup-and-restore-volume-container/

查看物理文件位置

$ docker inspect -f "{{.Volumes}}" test

删除一行 sh -c "sed -i '/^b.*/d' /data/test"

bind的设定

http://www.mk-mode.com/octopress/2014/08/13/centos-7-0-installation-of-bind/ http://centossrv.com/bind.shtml http://kajuhome.com/bind.shtml

squid代理

yum -y install squid

systemctl start squid

export http_proxy=10.10.106.231:3128

export https_proxy=10.144.161.119:3128

export SOCKS_SERVER=1.2.3.4:8000

docker build里使用代理

env http_proxy 10.251.137.130:3128

copy ca.crt to /etc/ssl/certs/ca-certificates.crt restart docker

export ALL_PROXY=socks5h://localhost:1080

################### 生成Self Signed证书 # 生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输, # 输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护

openssl genrsa -des3 -out selfsign.key 4096

使用上面生成的key,生成一个certificate signing request (CSR)

如果你的key有密码保护,openssl首先会询问你的密码,然后询问你一系列问题,

其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你的域名。

openssl req -new -key selfsign.key -out selfsign.csr

生成Self Signed证书 selfsign.crt就是我们生成的证书了

openssl x509 -req -days 365 -in selfsign.csr -signkey selfsign.key -out selfsign.crt

# 另外一个比较简单的方法就是用下面的命令,一次生成key和证书

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

生成自己的CA (Certificate Authority) # 生成CA的key

openssl genrsa -des3 -out ca.key 4096

生成CA的证书

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

生成我们的key和CSR这两步与上面Self Signed中是一样的

openssl genrsa -des3 -out light.key 4096 openssl req -new -key light.key -out light.csr

使用ca的证书和key,生成我们的证书

这里的set_serial指明了证书的序号,如果证书过期了(365天后),

或者证书key泄漏了,需要重新发证的时候,就要加1

openssl x509 -req -days 365 -in light.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out light.crt

查看证书

查看KEY信息

openssl rsa -noout -text -in myserver.key

查看CSR信息

openssl req -noout -text -in myserver.csr

查看证书信息

openssl x509 -noout -text -in ca.crt

验证证书

会提示self signed

openssl verify selfsign.crt

因为myserver.crt 是幅ca.crt发布的,所以会验证成功

openssl verify -CAfile ca.crt myserver.crt

去掉key的密码保护 有时候每次都要输入密码太繁琐了,可以把Key的保护密码去掉

openssl rsa -in light.key -out light.key.insecure

不同格式证书的转换

PKCS转换为PEM

openssl pkcs12 -in myserver.pfx -out myserver.pem -nodes

PEM转换为DER

openssl x509 -outform der -in myserver.pem -out myserver.[der|crt]

PEM提取KEY

openssl RSA -in myserver.pem -out myserver.key

DER转换为PEM

openssl x509 -inform der -in myserver.[cer|crt] -out myserver.pem

PEM转换为PKCS

openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.pem -certfile ca.crt

测试证书 Openssl提供了简单的client和server工具,可以用来模拟SSL连接,做测试使用。

连接到远程服务器

openssl s_client -connect www.google.com.hk:443

模拟的HTTPS服务,可以返回Openssl相关信息

-accept 用来指定监听的端口号

-cert -key 用来指定提供服务的key和证书

openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www

可以将key和证书写到同一个文件中

cat myserver.crt myserver.key > myserver.pem

使用的时候只提供一个参数就可以了

openssl s_server -accept 443 -cert myserver.pem -www

可以将服务器的证书保存下来

openssl s_client -connect www.google.com.hk:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > remoteserver.pem

转换成DER文件,就可以在Windows下直接查看了

openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer

计算MD5和SHA1

MD5 digest

openssl dgst -md5 filename

SHA1 digest

openssl dgst -sha1 filename

name server

TTL 客户端保存缓存的时间 SOA Serial zone文件版本 NS DNS服务器名 MX 10 邮件服务器名 @ 符号代表完整的FQDN * A IP地址 CNAME 别名

zone file template

$TTL 3600 @ IN SOA light.cn. admin.light.cn.( 2015050101; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS light.cn. @ IN A 10.251.137.130

  •    IN A     10.251.137.130

docker IN A 10.251.137.130 salt IN A 10.164.24.247

确认DNS

dig

nslookup

让缓存失效

nscd -i hosts

bind工具, dig, nslookup等

yum -y install bind-utils

bind无法解析自己的域名问题:

会有如下错误 reply from unexpected source expected

bind的自域名需要在/etc/hosts里登录,如下dig docker IN A 10.163.170.150 salt IN A 10.163.170.150 zabbix IN A 10.163.170.150 controller IN A 10.163.170.150 mysql IN A 10.163.170.150

10.163.170.150 salt

linux 版本确认

~$ head /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

Code: $ uname -a Linux anacreon 3.4.2-linode44 #1 SMP Tue Jun 12 15:04:46 EDT 2012 i686 i686 i386 GNU/Linux]

文件夹大小确认

du -h -s * ll -h

SQUID 缓存情况

缓存详细

squidclient -h 127.0.0.1 -p 3128 mgr:info >> hit.log

从日志查询hit数

cat /var/log/squid/access.log | grep HIT | wc -l cat /var/log/squid/access.log | grep MISS | wc -l

生成密码文件

docker run --entrypoint htpasswd docker.alphabets.cn/registry:2.5.1 -Bbn admin alphabets > htpasswd

docker inspect registry

cp -R htpasswd ssl docker_folder