CentOS 6にdockerは入れられないっぽい

あなたは、linux kernel version 2.6.32-220.7.1.el6.x86_64を実行しています、これはdockerを動かせません。

[root@localhost ~]#
[root@localhost ~]# docker -d
WARN[0000] You are running linux kernel version 2.6.32-220.7.1.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.10.0.
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
ERRO[0000] [graphdriver] prior storage driver "devicemapper" failed: Error running DeviceCreate (CreatePool) dm_task_run failed
FATA[0000] Error starting daemon: error initializing graphdriver: Error running DeviceCreate (CreatePool) dm_task_run failed

カーネルを3にアップグレードする方法もあるみたいだけど、

Linux kernel 3.x系に対応していないモジュールが解決していないので、実運用には向きません

とか書いてあったりするので、素直にCentOS7を入れることにした。

CentOS6.7 カーネルアップデート - Qiita
CentOS6.5のカーネルを3.x系にバージョンアップ - Qiita

メモ

dockerコンテナに外部からアクセスできるIPアドレスを割り当てる - kubotti’s memo
の記事で、
Windows10に入れたVirtualBoxで、
CentOS6にdockerを入れたときは、問題なくdockerを動かせた。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]#
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#
[root@localhost ~]# docker --version
Docker version 1.7.1, build 786b29d/1.7.1

なんでだろう・・・?

CentOS 7 で固定IPの設定がうまくいかなかった時のメモ

kvmにCentOS7を入れてみた。
固定IPを設定しようとしたら、eth0にIPアドレスが割当たらなかった。

ダメだった手順

CentOS5とか6と同じように、
vi /etc/sysconfig/network-scripts/ifcfg-eth0
を修正して、CentOS6の、
service network restart
に対応する(らしい)
systemctl daemon-reload
systemctl restart network
を実行したら、
ip addrコマンドとか
ip aコマンドで、IPアドレスが表示されなかった。

解決した方法

nmtui
コマンドを実行。

IPv4 CONFIGURATION
の項目で、 Automatically connect
をチェック。 ネットワーク再起動。
systemctl daemon-reload
systemctl restart network

で固定IPが割当たった。

How to Setup network on centos 7

動くようになった時の、
/etc/sysconfig/network-scripts/ifcfg-eth0
は以下。

TYPE=Ethernet
BOOTPROTO=none
DNS1=192.168.2.1
DNS2=8.8.4.4
NAME=eth0
UUID=fb3ab749-6329-4995-be8d-39fe4ad7b8f8
DEVICE=eth0
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
IPADDR=192.168.3.57
PREFIX=23
GATEWAY=192.168.2.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no

Automatically connect
のチェックは、
DEFROUTE=yes
に対応しているのかな・・?

メモ

http://enakai00.hatenablog.com/entry/20140712/1405139841

http://qiita.com/tukiyo3/items/67182edee4f937e7f707

CentOS 7 で ネットワーク(IPアドレス、ホスト名、ドメイン名など)の設定を行う | レンタルサーバー・自宅サーバー設定・構築のヒント

使っていなかったCentOS 6でyum upgradeした時のエラー

エラーその1

yum upgrade

Loaded plugins: fastestmirror
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=extras error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=updates error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"

DNSの設定をしていなかった(間違っていた)。

/etc/resolv.conf
で、ルーターIPアドレスと、GoogleDNS (8.8.4.4 or 8.8.8.8)を設定した。

エラーその2

yum upgrade

Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
http://ftp.tsukuba.wide.ad.jp/Linux/centos/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://mirror.fairway.ne.jp/centos/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://www.ftp.ne.jp/Linux/packages/CentOS/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://ftp.riken.jp/Linux/centos/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://ftp.iij.ad.jp/pub/linux/centos/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://ftp.nara.wide.ad.jp/pub/Linux/centos/6.2/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.

ネットで検索すると、
/etc/yum.repos.d/
の配下にあるファイルを修正する方法があったけど、
正しいURLを探すのが面倒だったので、もうちょっと調べたら、別の方法があった。

yum clean metadata
yum clean all

で直った。

ついでのメモ

EPELリポジトリを追加して、dockerをインストール。

yum install epel-release
yum --enablerepo=epel install docker-io

dockerは入ったけど、CentOS6では動かないっぽい。
http://kubotti.hatenablog.com/entry/2015/11/26/120452

ps | grep 検索でgrep自体のプロセスを表示させ無い方法

コマンドに入力する場合は、以下。

ps aux | grep [h]ttp


Python Fabricの中で使ったコードの一部は、以下。

    sudo('apachectl -k graceful-stop')


    is_apache_stopped = False

    cnt = 0

    SLEEP_SEC = 10

    MAX_CNT   = 30 # 300秒でタイムアウト


    while is_apache_stopped == False:
        with settings(warn_only=True):

            res = run('ps aux | grep [h]ttp')

        if res == "" or res is None:

            run("echo 'ps aux returns nothing(httpd stopped)'")

            is_apache_stopped = Trueelse:

            time.sleep(SLEEP_SEC)

        cnt += 1if cnt > MAX_CNT:

            # timeout

            run("echo 'httpd stop graceful time out.'")

            return

psをgrepした結果からgrep自身を除外する方法 - Linux入門 - Webkaru

cannot be done?

はてなブログで、記事を削除しようとしたら、

This will now be deleted and cannot be done.
 Are you sure you want to continue?

というメッセージが表示された。
元に戻せないと言いたいのだろうけど、
cannot be done て、なんか違う気がする。
cannot be restored とかじゃないのかな?

日本語確認

日本語表示にしたら↓だった。

削除されます。この操作は取消できませんが、続けますか?

MacOSで.で始まるディレクトリを表示(FileZillaで.sshディレクトリ内のキーファイル表示)

MacOSFileZillaで、SFTPを使い、サーバーに接続するとき、
.sshディレクトリの中にあるキーファイルを選択しようとしたら、表示されていないので選べなかった。 エクスプローラー?でファイル一覧を表示している状態で、

command + shift + . キー

を押して、ホームディレクトリを選びなおしたら、
ドットで始まるディレクトリとファイルが見えた。
osx - FileZilla on Mac OS X can't open .ssh directory to get my keyfile - Super User

finderで表示する方法

finderで.で始まるファイルを表示するには、 Terminalで、

defaults write com.apple.finder AppleShowAllFiles YES

と入力した後、 LauncherのFinderを
option + マウスクリック長押し
で、
Relaunch

Quickly Show/Hide Hidden Files on Mac OS X Mavericks & Yosemite | Ian Lunn - Web Designer & Front-end Developer

Point Cloud Libraryのインストールと設定

KINECT for Windows SDKプログラミングKinect for Windows v2センサー対応版』
の318ページ、7.1.2に書かれている内容を試してみる。
Windows10で。

空のPoint Cloud Viewerを表示するという内容。
数か月前に、ネット情報をもとに、KinectのデータをPoint Cloud Library(PCL)のビューワーで表示するプログラムを動かしたことはあるけど、おさらいとして試してみる。

PCL All in One のインストール

Building Point Cloud Library with Visual Studio 2012/2013/2015 | Summary?Blog

PCL-1.7.2-AllInOne-msvc2013-win64.exe
をダウンロードして実行。

Add PCL to the system PATH for all users
を選んでみた。

インストールフォルダ:
C:\Program Files\PCL 1.7.2

Warning! PATH too long installer unable to modify PATH!

と表示された。

環境変数Pathを消して、インストーラーを実行したら、
C:\Program Files\PCL 1.7.2\bin
というパスが環境変数Pathに追加されていた。
手動で追加したら、普通に追加できた。
なんで、消さないと警告メッセージが出るのかは不明。

とりあえず、
C:\Program Files\PCL 1.7.2
の下にファイルは展開された。

後に出てくるエラーを解消するためには、
C:\Program Files\PCL 1.7.2\3rdParty\VTK\bin
環境変数Pathに追加する。

PCL.props

PCL.props
もunanancyowen.comからダウンロード。

Visual Studioでサンプルプロジェクト

プロジェクトの新規作成で、
Visual C++ > Win32 > Win32 Console Application
を作成。
名前は、
Console_pcl_sample1
にした。
作成時の設定はそのまま。

プロジェクト設定

VIEW > Other Windows > Property Manager
で、Property Managerを開く。
Add Existing Property Sheet
で、
PCL.props
を追加。

Property ManagerのPCLを右クリック、Propertiesをクリック。
Common Properties > User Macros > Add Macro
PCL_ROOT
C:\Program Files\PCL 1.7.2

ソースコードの入力

本に載っているソースコードを入力。

エラーその1

ビルドしたら以下のエラーが出た。

Error    4   error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?   c:\Users\xxxxx\documents\visual studio 2013\Projects\Console_pcl_sample1\Console_pcl_sample1\Console_pcl_sample1.cpp    40  1   Console_pcl_sample1

ソースの最初の方に

#include "stdafx.h"

を書いたら直った。
ちなみに、

#include <stdafx.h>

だとダメだった。

エラーその2
Warning  1   warning C4603: 'NOMINMAX' : macro is not defined or definition is different after precompiled header use    c:\Users\xxxxxx\documents\visual studio 2013\Projects\Console_pcl_sample1\Console_pcl_sample1\Console_pcl_sample1.cpp   13  1   Console_pcl_sample1
Warning 2   warning C4003: not enough actual parameters for macro 'max' C:\Program Files\PCL 1.7.2\include\pcl-1.7\pcl\correspondence.h 75  1   Console_pcl_sample1
Error   3   error C2589: '(' : illegal token on right side of '::'  C:\Program Files\PCL 1.7.2\include\pcl-1.7\pcl\correspondence.h 75  1   Console_pcl_sample1
Error   4   error C2143: syntax error : missing ')' before '::' C:\Program Files\PCL 1.7.2\include\pcl-1.7\pcl\correspondence.h 75  1   Console_pcl_sample1
Error   5   error C2612: trailing '::' illegal in base/member initializer list  C:\Program Files\PCL 1.7.2\include\pcl-1.7\pcl\correspondence.h 75  1   Console_pcl_sample1
Error   6   error C1903: unable to recover from previous error(s); stopping compilation C:\Program Files\PCL 1.7.2\include\pcl-1.7\pcl\pcl_macros.h 66  1   Console_pcl_sample1
#include "stdafx.h"  

より上に

#define NOMINMAX  

があるとこのエラーがでるようだ。
順序を変えたら、、別のエラーになった。

エラーその3
Error    1   error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAABVerror_category@12@XZ) C:\Users\xxxxx\Documents\Visual Studio 2013\Projects\Console_pcl_sample1\Console_pcl_sample1\Console_pcl_sample1.obj    Console_pcl_sample1

c++ - Boost linker error: Unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::get_system_category(void)" - Stack Overflow

32bitと64bitの問題みたい。

Active solution platform:
ダイアログで、
Type or select the new platform:
x64

で解決。ビルド成功した。

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

エラーその4

実行したら、エラーのダイアログがでた。

コンピューターに pcl_visualization_release.dll がないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。
C:\Program Files\PCL 1.7.2\bin;C:\Program Files\PCL 1.7.2\3rdParty\VTK\bin  

環境変数Pathに追加したら動いた。
真っ黒な画面が表示されるだけ。

f:id:kubotti:20151124230300p:plain