Skip to content

Instantly share code, notes, and snippets.

@nobonobo
Last active December 1, 2016 10:50
Show Gist options
  • Select an option

  • Save nobonobo/aafaf55f7e1776124382 to your computer and use it in GitHub Desktop.

Select an option

Save nobonobo/aafaf55f7e1776124382 to your computer and use it in GitHub Desktop.
docker-machineを使う手順

この設定手順の狙いは、linuxでもWinやOS-Xと互換のdocker環境を構築するためのものです。 (ネイティブのdockerはvolumeのマウントフォルダが透過的すぎて他の環境と互換が取りにくい。)

準備

for linux

docker-machine create -d virtualbox default
docker-machine stop default
VBoxManage sharedfolder add default --name Users --hostpath /home --automount
VBoxManage sharedfolder add default --name sock --hostpath /run/user/1000 --automount
docker-machine start default
ssh docker@192.168.99.100 'echo "ln -s /Users/$USER /home/$USER" | sudo tee -a /var/lib/boot2docker/bootlocal.sh'
ssh docker@192.168.99.100 'echo "ln -s /sock /run/user/1000" | sudo tee -a /var/lib/boot2docker/bootlocal.sh'
eval $(docker-machine env default)
echo "eval \$(docker-machine env default)" >> .bashrc
sudo ip route add 172.17.0.0/16 via $(docker-machine ip default)

このあとターミナル開き直す

for Windows

  • docker-toolboxのダウンロードとインストール
route -f add 172.17.0.0 mask 255.255.0.0 192.168.99.100

for MacOS-X

  • docker-toolboxのダウンロードとインストール
echo "eval \$(docker-machine env default)" >> .bashrc
sudo route -n add 172.17.0.0/16 $(docker-machine ip default)

使う

プライベートリポジトリの起動

docker run -d -p 5000:5000 -v $HOME/.registry:/var/lib/registry --name registry registry

プライベートリポジトリのカタログ取得

curl -s http://localhost:5000/v2/_catalog | jq .

Simple WebUI

docker run -i -t -p 80:8080 -e REGISTRY_HOST=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' registry) -e REGISTRY_PORT=5000 hyper/docker-registry-web

WebUIフロントエンド(WIP)

docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' registry) \
  -e ENV_DOCKER_REGISTRY_PORT=5000 \
  -p 80:80 \
  konradkleine/docker-registry-frontend:v2

debug-memo:

(echo GET /v2/_catalog HTTP/1.0; echo; cat <&1 >&2) >/dev/tcp/$ENV_DOCKER_REGISTRY_HOST/$ENV_DOCKER_REGISTRY_PORT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment