Subscribed unsubscribe Subscribe Subscribe

OngaLog

最近GOが楽しくて、

Dockerのコンテナに割り振られているIP情報を確認する

Dockerに割り振られている、IP情報を確認したいときのコマンド。

docker inspect <コンテナID>

IP意外にも設定情報が確認できる。

"IPAddress": "172.17.0.5",

IPはこの部分。

"Memory": 0,
"MemorySwap": 0,

みたいな情報もあって、この値をなにかに利用することもできそうだ。

"Args": [],

は何の値が入るのだろうか、?気になる。

[
{
    "Id": "cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3",
    "Created": "2016-11-09T06:21:13.362604567Z",
    "Path": "/bin/bash",
    "Args": [],
    "State": {
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "Dead": false,
        "Pid": 19858,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2016-11-09T06:21:18.454354979Z",
        "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "77ef9a48cbcd426222db33780cde2594bd9a1f72a8c48baf737dfeaf531a90d7",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "fb5b7617aa6e12ddb0e93958a8d753a06e410d01a3ba896f507dc75f6e6a5a6c",
        "Gateway": "172.17.42.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "172.17.0.5",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:11:00:05",
        "NetworkID": "fce7ae5ca5414255cdde4c64956f841d82d8b3bcfd1328df209b1979741fe7d4",
        "PortMapping": null,
        "Ports": {
            "80/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "80"
                }
            ]
        },
        "SandboxKey": "/var/run/docker/netns/cf067df275fb",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "ResolvConfPath": "/var/lib/docker/containers/cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3/resolv.conf",
    "HostnamePath": "/var/lib/docker/containers/cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3/hostname",
    "HostsPath": "/var/lib/docker/containers/cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3/hosts",
    "LogPath": "/var/lib/docker/containers/cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3/cf067df275fb76b595d8b5fa700d4f672c5d7e6d3bf6a7ea2ace940a247aade3-json.log",
    "Name": "/web",
    "RestartCount": 0,
    "Driver": "devicemapper",
    "ExecDriver": "native-0.2",
    "MountLabel": "",
    "ProcessLabel": "",
    "Volumes": {
        "/var/www/html": "/var/www/html"
    },
    "VolumesRW": {
        "/var/www/html": true
    },
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
        "Binds": [
            "/var/www/html:/var/www/html"
        ],
        "ContainerIDFile": "",
        "LxcConf": [],
        "Memory": 0,
        "MemorySwap": 0,
        "CpuShares": 0,
        "CpuPeriod": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "CpuQuota": 0,
        "BlkioWeight": 0,
        "OomKillDisable": false,
        "Privileged": false,
        "PortBindings": {
            "80/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "80"
                }
            ]
        },
        "Links": null,
        "PublishAllPorts": false,
        "Dns": null,
        "DnsSearch": null,
        "ExtraHosts": null,
        "VolumesFrom": null,
        "Devices": [],
        "NetworkMode": "bridge",
        "IpcMode": "",
        "PidMode": "",
        "UTSMode": "",
        "CapAdd": null,
        "CapDrop": null,
        "RestartPolicy": {
            "Name": "no",
            "MaximumRetryCount": 0
        },
        "SecurityOpt": null,
        "ReadonlyRootfs": false,
        "Ulimits": null,
        "LogConfig": {
            "Type": "json-file",
            "Config": {}
        },
        "CgroupParent": ""
    },
    "Config": {
        "Hostname": "cf067df275fb",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "PortSpecs": null,
        "ExposedPorts": {
            "80/tcp": {}
        },
        "Tty": true,
        "OpenStdin": true,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        ],
        "Cmd": null,
        "Image": "tkcdocker/centos6-mt6-2016-11-08-update",
        "Volumes": null,
        "VolumeDriver": "",
        "WorkingDir": "",
        "Entrypoint": [
            "/bin/bash"
        ],
        "NetworkDisabled": false,
        "MacAddress": "",
        "OnBuild": null,
        "Labels": {}
    }
}
]

パーセプトロン

パーセプトロン、DeepLearningの基礎となるアルゴリズム。

このアルゴリズムをプログラムに落とし込んでみると簡単な計算式でしかない。

ここでは、ANDゲートというものを作ってみる。 2つの値を入力し敷居値より大きい値か否かを判断して、0 or 1 を返す。

本来この計算式にはバイアスがかからなければ、それは人間でいったら感情というべきものなのだろうか、 この式ではそのようなバイアスは存在していない値を入れれば、素直に数値そのものが返ってくる。

gist.github.com

ゼロから作るDeep Learning

ゼロから作るDeep Learning

f:id:loosefingers:20161107092330j:plain

Deep learnig そろそろやってみたいと思い、

Oreily本を買ってみる。少しずつ進めていこう。いやー、久しぶりに楽しみ。思えば、web開発やアプリ開発は、表現手段をネットワーク経由で変換し続ける方法のように思う。基本的に打てばかならず決まった何かがどこからか帰ってくる。そこに曖昧さは入り込む余地はないのだけれどディープラーニングではどのような解釈になるのであるのか、まだまだ何もわかっていない。

www.amazon.co.jp

予定

パーセプトロン

ニューラルネットワーク

誤差逆転伝播法

畳み込みニューラルネットワーク

ディープラーニング

windows7のupdateが終わらない時に為に、

訳あって、windows7を使わなければいけない必要があったのだが、 windows updateが延々に終わらなかったので、メモ。。

web上にはこのUpdate一連の流れを地獄と表現した箇所があったがまさにそのとうりだと思う。しっくりきた。 この情報が少しでも地獄の道先案内になってもらえればと思い記す。

手順

まずwindows updateを停止する。

出だしからまず躓く、なぜこの作業が必要かといえば、個別のupdateファイルをインストールするしなければいけないのだが、

windows updateを有効にしている場合は、個別ファイルをインストールするタイミングで更新ファイル全体の確認を実行する。そして終わらない。。無限地獄が始まるのである。

素直に、windows updateは停止する。そこに理由などはないのだ。

Just do it.

f:id:loosefingers:20161101223529p:plain

IE11をインストールする。

IE11をinstall

Download Internet Explorer 11 for Windows 7 from Official Microsoft Download Center

Windows 7 SP1を適用する。

まずは、ここからsp1を適用する。

Download Windows 7 and Windows Server 2008 R2 Service Pack 1 (KB976932) from Official Microsoft Download Center

f:id:loosefingers:20161101223706p:plain

この時、ダウンロードボタンが表示されない現象が発生した。 ダウンロードセンターでダウンロードボタンが表示されない場合の対処方法 oshiete.goo.ne.jp

KB3138612

KB3138612といわれる、更新ファイルをインストールする。

個別ファイルには、32bit用と64bit用などに分かれており、自分の環境に適合したファイルをダウンロードする必要があるようだ。

Download Windows 7 for x64-Based Systems 用更新プログラム (KB3138612) from Official Microsoft Download Center (このリンクは64bit版用である為、お使いのwindowsの環境にあわせてください。)

windows update を実行する。

この状態でやっと、windows updateを実行する。

ネット上には、この KB3138612をインストールした後に、劇的に確認時間が短縮されるとの情報もあるがそのような事はなかった、20-30分まったと思う。

しかし、地獄はまだまだ続く、 Windows Updateで80072f8fのエラーが発生した。 どうも、時間を正確に設定しておく必要があるらしい。 tuberculin.blog102.fc2.com

所感

windows7のupdateは、素直に、windowsの操作に従うだけでは一向に解決する気配はなかった。 またマイクロソフトによる公式的な対応方法のアナウンスも見つけることはできなかった。 なかなかに興味深い問題であって、ネット上に膨大にある情報を寄せ集めて対応するしかないようだ。 しかし、まだ、業務ではwindows7に依存したシステムが多く存在すると思う。ベストプラクティス的な情報はどこかにあってしかるべきだとおもうが、githubにそのようなレポジトリもみつけることもできなかった。数年ぶりに必要があってwindowsを触ったのがなかなかの作業であった。

この記事が参考になりました。感謝。 www.ikt-s.com

Dockerを使って、CentOS7にMysqlをインストールしてみる

Dockerを使って、CentOS7にMysqlをインストールしたところ、 systemdが動作しなかったのでメモ。

systemdをdocker内で動かす為に、以下のコマンドでCentOS7を起動。

docker run -d -it --privileged -p 80:80 -v /Users/tkc/git/Docker-MT/Code/web0:/var/www --name web0 centos:7 /sbin/init

それ以外は通常の作業でいけました。

作業ログ gist.github.com

adbコマンドが見つからない、

adbコマンドが見つからなくなった、、

adb: command not found

OSアップデートの影響かと思われる。

platform-toolsにpathを通して解決。

export PATH=$PATH:/Users/hogehgoe/Library/Android/sdk/platform-tools  

PHP Stormでgitが見つからない、

macで、osをバージョンアップすると、以下のエラーが、、 PHP Stormから、gitがみつからない様子なのだけれど、

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
/user/bin/git

を設定してやってもだめ、、

/Applications/Xcode.app/Contents/Developer/usr/bin/git

のpathを設定したら無事に動いた。

このサイトが大変参考になりました。 tamamemo.hatenablog.com

しかし、なぜ、xcodeのgit pathが必要なのかはわかっていない。。