不凡的科技博客

Follow me on GitHub

安装 Docker 私有镜像仓库 Harbor


目的

在 centos 安装 Docker 私有镜像仓库过程备忘

安装 docker

yum install docker
systemctl start docker

安装 docker-compose

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install docker-compose

下载 harbor

wget https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.2.tgz
tar zxf harbor-online-installer-v1.5.2.tgz

配置 harbor

cd harbor
vi harbor.cfg
# 修改 hostname 为本机ip
  hostname = 10.120.xx.xx
  customize_crt = off
# 配置共享存储 provider
  registry_storage_provider_name = swift
  registry_storage_provider_config = username: xxxx:swift, password: xxxxxxxx, authurl: http://xx.xx.xx.xx:8080/auth/v1.0, container: xxxx

安装 harbor

./install.sh

出现问题:ERROR: for harbor-log Cannot create container for service log: error creating overlay mount to /var/lib/docker/overlay2/c6434fdf7016e2cb630c79fbf898c7c5a572f96818ccc73ea0f04b321b326e9d-init/merged: invalid argument 解决:

# fix wrong driver
echo '{ "storage-driver": "devicemapper" }' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker.service

启停 harbor

docker-compose start
docker-compose stop
docker-compose restart


Docker 介绍-为什么我们应该使用 Docker


目的

Docker 是一个“一次编译,到处部署”的容器技术,该文章将介绍为什么我们需要 Docker,什么是 Docker,何时该使用 Docker。

为什么我们需要 Docker - 应用发布老模式的痛点

在传统的应用发布模式下,我们在自己的电脑上开发完成后,需要手动打包或者使用自动化工具自动打包,然后将该构建发布到服务器上运行,如果有完整的运行环境包括开发环境、测试环境、生产环境,就需要将该构建拷贝到不同的环境。在这种模式下有可能遇到如下问题: 1. 我本地开发时是正常的,为什么发布到服务器上之后运行结果就不对了? 2. 这个应用已经通过测试环境的测试了,为什么发布到生产环境后却出现了莫名其妙的问题?

以上问题很可能就是因为操作系统版本不一致、系统配置不一致等问题引起的。这时候我们就需要一个能够保持系统状态而不会受底层运行操作系统影响的解决方案。

Docker 提供的容器技术就能解决上面的问题。 ... ...

查看全文

更新jdk6到jdk7


更新jdk6到jdk7

– 到http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载jdk7 – 上传到服务器

[@wendah2 ~]# cd /usr/java
[@wendah2 java]# rz

– 拆卸jdk6

[@wendah2 java]# rpm -qa | grep jdk
jdk-1.6.0_13-fcs
[@wendah2 java]# rpm -e --nodeps jdk-1.6.0_13-fcs

– 安装jdk7 ... ...

查看全文

更新confluence3.5.4到5.1.4


升级GLIBC2.3.4到2.4

参考:

http://blog.csdn.net/heavenying/article/details/4122887

http://www.ibm.com/developerworks/cn/linux/l-cn-glibc-upd/

– 下载glibc

[@wendah2 usr]# mkdir /opt/glibc
[@wendah2 usr]# cd /opt/glibc
[@wendah2 glibc]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.4.tar.gz

– 备份关键目录

[@wendah2 opt]# cd /
[@wendah2 /]# cp -a /lib /lib.old
[@wendah2 /]# cp -a /lib64 /lib64.old
[@wendah2 /]# cd /usr
[@wendah2 usr]# cp -a lib lib.old
[@wendah2 usr]# cp -a bin bin.old
[@wendah2 usr]# cp -a sbin sbin.old
[@wendah2 usr]# cp -a include include.old
... ...

查看全文

【转】LINUX 查看tcp连接数及状态


netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 
TIME_WAIT 8947       等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN_WAIT1 15           等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN_WAIT2 1            从远程TCP等待连接中断请求
ESTABLISHED 55      代表一个打开的连接
SYN_RECV 21          再收到和发送一个连接请求后等待对方对连接请求的确认
CLOSING 2                没有任何连接状态
LAST_ACK 4           等待原来的发向远程TCP的连接中断请求的确认

TCP连接状态详解

  • LISTEN: 侦听来自远方的TCP端口的连接请求
  • SYN-SENT: 再发送连接请求后等待匹配的连接请求
  • SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
  • ESTABLISHED: 代表一个打开的连接
  • FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
  • FIN-WAIT-2: 从远程TCP等待连接中断请求
  • CLOSE-WAIT: 等待从本地用户发来的连接中断请求
  • CLOSING: 等待远程TCP对连接中断的确认
  • LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
  • TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
  • CLOSED: 没有任何连接状态