blog.monophile.net

コンピュータのこととかのメモ。

山本 一彰 | Takaaki Yamamoto

山本一彰(Takaaki Yamamoto)

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、2016年に 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を受賞。 現在はSRE(サイト信頼性エンジニア)として生計をたててている。

技術

Configuration Management Terraform, Ansible, Cloud-Init
Cloud Platform GCP, AWS, Azure, OpenStack
Virtualization, Container QEMU+KVM, Proxmox, Xen, LXD/LXC, Docker, Kata, systemd-nspawn
OS, Distribution Debian GNU/Linux, Ubuntu, CentOS, FreeBSD, macOS, ...
Storage Ceph, GlusterFS, ZFS, Btrfs, ...
Router Linux+Netfilter, Quagga, FRR, VyOS, Cisco IOS, YAMAHA RTX, ...
Switch Dell FTOS, AlaxalA, NETGEAR, ...
SQL MySQL, MariaDB(Galera Cluster), PostgreSQL, BigQuery, ...
NoSQL Elasticsearch, InfluxDB, etcd, MongoDB, ...
WebApps WordPress, GitLab, Redmine, ...
Monitoring Grafana, Prometheus, Nagios, Munin, Zabbix
DNS CoreDNS, dnsmasq, Unbound, BIND9, ...
Misc Kubernetes/Istio, certbot, HAProxy, ...

自称はネットワークエンジニアだが、 Linuxのネットワークと仮想化技術が得意なため、 サーバエンジニアの雰囲気のほうが強いかもしれない。

習得中

Virtualization, Container, OS VirtIO GPU, okd, CDH, CoreOS, ...
Network mVPN, Calico, IoT(6LoWPAN, LoRaWAN), ...
NoSQL BigTable, HBase, OpenTSDB, Redis, ...
Misc Test Engineering, Android Apps, ...

大きな領域では、セキュリティを考慮した複数パブリッククラウドの相互運用に興味がある。

投稿

DockerのプライベートレジストリをWebUI(docker-registry-web)とともに使ってみる

概要

Docker Swarmを使うためにDockerのプライベートレジストリを立てた。 レジストリの中を閲覧したり削除したりするのにWebUIがあると便利そうだな、 と思って調べてみたら良さそうなの↓があったので使ってみた。

Docker Swarmを初期化する。

使ったDockerは17.09。

↓でDocker Swarmを初期化する。

docker-compose.registry.yml

  • プライベートレジストリはSwarmのマネージャノードで立ち上げる。
  • プライベートレジストリには http://localhost:5000/ でアクセスできるようにする。
  • WebUIには http://localhost:5001/ でアクセスできるようにする。
  • レジストリの閲覧だけでなく削除もできるようにする。

上記の要件を満たすように、 ↓ docker-compose.registry.yml を用意する。

version: '3.4'

networks:
  registry:
    driver: overlay

volumes:
  registry:
    driver: local

services:
  registry:
    image: registry:2
    ports:
    - target:    5000
      published: 5000
      protocol:  tcp
      mode:      ingress
    volumes:
    - registry:/var/lib/registry
    deploy:
      placement:
        constraints:
        - node.role == manager
    environment:
    - REGISTRY_STORAGE_DELETE_ENABLED=true

  registry-web:
    image: hyper/docker-registry-web
    ports:
    - target:    8080
      published: 5001
      protocol:  tcp
      mode:      ingress
    environment:
    - REGISTRY_URL=http://registry:5000/v2
    - REGISTRY_NAME=registry:5000
    - REGISTRY_READONLY=false

環境変数の設定については↓を参照するとよい。

プライベートレジストリとWebUIを立ち上げる

↓でプライベートレジストリとWebUIを立ち上げる。

↓で立ち上がったことが確認できる。

↓のように空の応答がレジストリサーバから返ってくればOK。

さらに↓でWebUIにアクセスできるはず。 (まだ何も入れていないので、もちろん空っぽ。)

Ubuntuの公式イメージをローカルレジストリにpushしてみる

↓でUbuntu公式イメージを取ってくる。

↓取ってきたイメージに localhost:5000/ubuntu:latest というタグをつける。

↓タグを付けたイメージをプライベートリポジトリにpushする。

この状態でWebUIをみると↓のようにアップロードしたイメージを見ることができ、 さらに削除も可能。

めでたし、めでたし。