basyura's blog

あしたになったらほんきだす。

Docker - GitLab を立てる

Docker で GitLab を立ててみる。

README にそって動かす。

$ docker pull gitlab/gitlab-ce
$ docker run --detach \
             --hostname localhost \
             --publish 443:443
             --publish 80:80
             --publish 22:22 \
             --name gitlab \
             --restart always \
             gitlab/gitlab-ce:latest

$ docker exec -it gitlab /bin/bash

http://localhost/ にアクセス。ログインしてユーザを作って commit & push できた。

Docker for Windows

mac でいい感じに動くのは分かったのだけど windows ではどうなのだろうか。

  • The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later). In the future we will support more versions of Windows 10.
  • Nested virtualization scenarios, such as running Docker for Windows on a VMWare or Parallels instance, might work, but come with no guarantees (i.e., not officially supported).

what-to-know-before-you-install

最新バージョンは Windows10 でしかサポートされてなかった。かつ VMWare では “たぶん動くけど保証してない” 状態。手元には VMWare Fusion の Windows しかないけど動いたので以下に記載。

VMWare の設定

f:id:basyura:20170105174901p:plain:w300

「この仮想マシンでハイバーバイザーアプリケーションを有効にする」にチェックを入れておく。

Windows10

インストーラをダウンロードして実行するだけ。hyper-v を有効にするか?と聞かれるので ok を押して進める。

f:id:basyura:20170105175033p:plain:w300

特に問題なく実行できた。apt-get update からの apt-get upgrade してからの apt-get install vim で vim も動かせた。

Windows8.1

同じようにインストーラを実行したところエラーがでた。

Running pre-create checks...
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...

Windows10 以外では docker toolbox を使うようだ。

ダウンロードしてインストール。こちらも特に問題なく ubuntu を起動できた。

まとめ

これまた、もっと速く知ってればあんな苦労やこんな苦労しなくても済んだのにっていう。仕事のアプリケーションは Windows 環境で動作するので docker の恩恵があまり受けられないのだけど、docker ベースだったらあんな苦労やこんな苦労もしなくて済んでるのにな。.Net Core が進化すれば linux 版の SQL Server もあるし移行できなくはなさそうだけど。

Windows で動いたのは嬉しいけどターミナルがやっぱりちょっと・・・。Window10 でかなりマシになったのだけど。cygwin ck に代わるものを早いとこ探さなきゃ。

Docker の一番いいところはアイコンがカワイイところだな。

Docker 入門

ずっと気になっていたのだけどようやく着手。これは便利だ (みんな知ってる)。

「docker」でググって入門を調べてみたりしたのだけど最初から本家を見ればよかった。ただ、2014 年から更新が止まっているようなのだけど Docker入門 は概要を把握しやすくてよかった。

以下、入門手順。

インストール @ Mac

Homebrew を使う方法もあるようなのだけど、本家の mac 版インストーラを使用。ダウンロードして実行するだけ。

入門

Get started に従う。

docker で起動しているコンテナの一覧を表示

$ docker ps

CONTAINER ID        IMAGE     COMMAND                   CREATED             STATUS                PORTS                                    NAMES
185fabcd9c5d        nginx       "nginx -g 'daemon off"   13 minutes ago     Up 11 seconds      0.0.0.0:80->80/tcp, 443/tcp    webserver

起動していないコンテナの一覧も表示

$ docker ps -a

CONTAINER ID   IMAGE        COMMAND                 CREATED         STATUS                     PORTS                         NAMES
185fabcd9c5d   nginx        "nginx -g 'daemon off"  15 minutes ago  Up About a minute          0.0.0.0:80->80/tcp, 443/tcp   webserver
10bc8846eada   hello-world  "/hello"                17 minutes ago  Exited (0) 17 minutes ago   

コンテナを止める

$ docker stop webserver

コンテナを削除す

$ docker rm -f webserver

イメージの一覧を表示 (rm してもイメージは削除されていない)

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              01f818af747d        6 days ago          181.6 MB
hello-world         latest              c54a2cc56cbb        6 months ago        1.848 kB

イメージを削除する

$ docker rmi nginx

Untagged: nginx:latest
Untagged: nginx@sha256:fab482910aae9630c93bd24fc6fcecb9f9f792c24a8974f5e46d8ad625ac2357
Deleted: sha256:01f818af747d88b4ebca7cdabd0c581e406e0e790be72678d257735fad84a15f
Deleted: sha256:473ebc9bec6f78c39877b6655ff7c464271d36464442ed27b10be957201e364a
Deleted: sha256:1802fbcbaa5e7496944e22a9fd0cb72051515a66e382b7148cf4098a92571221
Deleted: sha256:b6ca02dfe5e62c58dacb1dec16eb42ed35761c15562485f9da9364bb7c90b9b3

ubuntu を入れてみる

Get started に従って使い方が分かったので ↑ を参考に ubuntu を入れてみる。

$ docker pull ubuntu:latest
  → latest を指定しない場合は latest がつく

$ docker run -it --name ubuntu_test ubuntu /bin/bash
  → ubuntu イメージから ubuntu_test という名前でコンテナを作る
  → 名前を指定しない場合は自動で付けられる
  → 指定しない場合は /bin/bash が指定される

$ docker start ubuntu_test
  → イメージの再実行

$ docker exec -i -t ubuntu_test /bin/bash
  → ログイン

centos を入れてみる

ubuntu のインストールで感じがつかめたので勘で centos を入れてみる

$ docker pull centos
  → イメージを取ってくる

$ docker run -it —name centos centos
  → centos のイメージから centos という名前のコンテナをつくる

$ docker start -i centos
  → 対話モードでコンテナを起動

できた。

zsh completion

補完が欲しくなったのでダウンロードしてインストール

まとめ

便利。びっくりするぐらい便利。公式サイトから iso をダウンロードしてきて VMWare に食わせて起動することを考えると何倍も楽。一瞬で作れる。イメージからコンテナを別名で作れるのも楽。VMWare に比べて cpu 使用率が低いのが一番うれしいかも。VMWare の謎 CPU 使用率は結構辛い。Windows もどドッカーンと作れると嬉しいのだけど。VMWare Fusion が windows 10 と相性が悪いのかいつの間にか再起動地獄に陥るので辛い。windows 8 に切り替えて様子見。

さっさと Docker に取り掛かってればアレもコレも楽だったのにと悔やまれるけど、いい感じに入門できた。

2016 年振り返り

git の年だった。

数年使っていた svn から移行。旗振り役として運用案の作成から git の使い方の啓蒙、サポートを行った。あわせて、GitLab の構築とメンテナンス & バージョンアップに啓蒙、サポートも行った。

svn の方が分かりやすくて良かったという人も少なからずいたけど git にして良かったと改心するのは時間の問題と思っている。 git になってレビューがしやすくなったし、ブランチを気軽に作ったり消したりできるのは便利だ。マージは楽になったけどコンフリクト発生時の直し方が課題(複数人でいい感じにコンフリクトを直してからマージしたい)。

cygwin から git for windows に乗り換えた。何年お世話になったか忘れてしまったけどようやく。振り返るとちょうど一年前に cygwin 1.7 から最新に移行していた。

Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5

Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5

とある初めての WPF アプリケーション開発で基盤部分を作成。関係各所にアドバイスを頂きつつ継続中。現在はレビューと実装サポートを行っている。いい感じにできあがってきつつあるが諸事情による構成の複雑さがあるのでパフォーマンス面に心配あり。できあがれば社内での風向きがいろいろと変わるのではないかと思っている。

長年使っていた au から離脱。docomo 回線なのだが au 回線の方が安定感や繋がりやすさがあったように思う。それがちょっと気になるぐらいでコスト面で十分に満足。キャリアメールなんていらんかったんや。とは言え代替となっている LINE もホントはあまり使いたくない。便利なのは認める。Gmail ぐらいがちょうどいいんだけどなぁ。

年初に立てた目標

  • 大きめの開発がまた始まるのでいい感じになるようにコミットしていく
  • 環境面の改善に力を入れていく
  • 健康面に気をつける

まぁまぁクリアできたと思う。今年もよく頑張った。

Firefox - Classic Theme Restorer をやめる

Firefox の UI が変わってから慣れなくて Classic Theme Restorer をずっと使っていたけどやめた。関係あるのかよく分からないけど拡張を使っていると cpu 使用率が上がる。タブをいくつか開いて閉じた後、cpu 使用率が 10% 程度を推移して落ちない。拡張を外すと 3 〜 4% で落ち着く。windows だとそもそも 0 % なんだけどな。noscript を ON にしてると読み込み中のままになっているようなのも気になる。image が取り込めないでいるようだ。乗り換える気はないのだけど Safari はページ読み込みが速くていい。cpu 使用率もほぼ 0% 。Firefox も何も入れなければそうなるのか。なったとしても使いづらくなるので無理だ。

耳栓を変えた

家が大通りに面しているせいもあって夜中の車や電車の音が気になってしまう。寝づらく目が覚めやすい。起きている間は大丈夫。田んぼに囲まれた田舎育ちなので雨の音やカエルの鳴き声は大丈夫なのだけど車の音はダメ。不定期な突発的な音が気になるのかもしれない。

ということで睡眠中は耳栓を使っている。最近 ↓ に切り替えた。

3M ネクスケア イヤープラグ 耳せん フォームタイプ 2セット ケース付き 1100RP

3M ネクスケア イヤープラグ 耳せん フォームタイプ 2セット ケース付き 1100RP

もともとは サイレンシア AB+ を買いだめして長らく使っていたのだけどいつの間にか生産終了していた。遮音性が良くていい製品だったのに残念。

サイレンシア レギュラー 携帯ケース付き

サイレンシア レギュラー 携帯ケース付き

仕方がないのでサイレンシアの別シリーズ(スタンダード?)に切り替え。AB+ に比べると柔らかく遮音性が若干弱い。新品の頃はまだいいのだけど 1 週間もすると遮音性がさらに弱くなる。

ネクスケアは AB+ の様な遮音性があって今のところ満足している。特に問題なさそうであればこのまま乗り換えることにする。