docker踏み込み記
3514 ワード
最近dockerが使われ始めました.一つはミラーオープンインスタンスが新しい仮想マシンよりずっと便利になりました.二つ目はdockerの発展も比較的成熟しています.docker-toolboxというワンタッチのインストールパッケージがあれば、docker-hubは国内にもいろいろなミラーライブラリがあります.資源の獲得は出たばかりのものよりずっと便利になりました.しかし、穴はまだ少なくないので、まとめてみましょう.
インストールはdocker-toolboxがおすすめです.前にvagrantを使ってvirtual boxをインストールしたので、インストールする必要はありません.なければoracle公式サイトでダウンロードできます.
dockerミラーはdocker-hubで降りることができますが、速度が遅く、国内のいくつかの2つの資源アリhub daocloudをお勧めします.
docker pullは半分、他に用事があったので、機械はしばらく待機していたが、機械を起こした後、docker pullは動かなくなった.ネットワークをチェックしても何もなく、数分ほど待っても進捗は変わらず、強制的に中断するしかなかった.再びdocker pullは同じミラーで、ダウンロードの進捗はダウンロードしたばかりの場所からで、進捗は何も変わりません.
仕方なく、半分のミラーを落として、手動で削除するしかありません(ソリッドステートドライブの空間はやはり貴重で、1つのミラーが1つのG近くを占めています).
dockerホーム/var/lib/docker/、下のミラーは/var/lib/docker/imageに保存されていますが、半分下のミラーはありません.
ls下tmpディレクトリ、ディレクトリサイズはダウンロードしたばかりのミラーサイズと同じで、下半分のものがここにあることがわかります.このディレクトリを削除してdocker pullを続けますが、ダウンロードを続けることはできません.どこかでダウンロードキャッシュがあるはずです.最後の手でdocker-machineを再起動します.
再びdocker pullを試して、やっとダウンロードを再開しました.
docker-machineのipは動的に割り当てられているため、1、2回再起動した後、異なるIPが割り当てられる可能性があります.docker-machineにログインするには、証明書を再生成する必要があります.もう1つの解決策は、固定IPを設定することです.次に、固定IPをどのように配置するかを説明します.
docker-machineのlinuxバージョンはCore Linuxで、リリース版ではなく、静的IPを直接割り当てることはできません.マシンプロセスを表示すると、デフォルトではudhcpcで動的IPが取得され、再起動すると異なるIPが取得される可能性があります.
しかし,この方法で設定されたIPは,機器起動20分程度ごとにバックグラウンドで起動されたdhcpクライアントによって再取得され,IPは新しいIPに設定される.
現在、一時的なソリューションは2つあります. dhcp clientをオフにする、dhcp client起動スクリプトは起動ディレクトリ/etc/rcで行うことができる.dファイル名dhcp.sh
ファイル内のforループに判断条件を付け、eth 1ネットワークカードであれば固定IPを設定し、else他のネットワークカードはデフォルトでdhcpでIPを取得する dhcp clientを閉じる方法を必要とせず、計画タスクを書き、1分間に1回IP を再設定する.
インストール
インストールはdocker-toolboxがおすすめです.前にvagrantを使ってvirtual boxをインストールしたので、インストールする必要はありません.なければoracle公式サイトでダウンロードできます.
ミラーリング
ミラーを探す
dockerミラーはdocker-hubで降りることができますが、速度が遅く、国内のいくつかの2つの資源アリhub daocloudをお勧めします.
docker pull stuck
docker pullは半分、他に用事があったので、機械はしばらく待機していたが、機械を起こした後、docker pullは動かなくなった.ネットワークをチェックしても何もなく、数分ほど待っても進捗は変わらず、強制的に中断するしかなかった.再びdocker pullは同じミラーで、ダウンロードの進捗はダウンロードしたばかりの場所からで、進捗は何も変わりません.
仕方なく、半分のミラーを落として、手動で削除するしかありません(ソリッドステートドライブの空間はやはり貴重で、1つのミラーが1つのG近くを占めています).
>docker info
/mnt/sda1/var/lib/docker
dockerホーム/var/lib/docker/、下のミラーは/var/lib/docker/imageに保存されていますが、半分下のミラーはありません.
docker@default:/mnt/sda1/var/lib/docker$ sudo ls
aufs containers image network tmp trust volumes
ls下tmpディレクトリ、ディレクトリサイズはダウンロードしたばかりのミラーサイズと同じで、下半分のものがここにあることがわかります.このディレクトリを削除してdocker pullを続けますが、ダウンロードを続けることはできません.どこかでダウンロードキャッシュがあるはずです.最後の手でdocker-machineを再起動します.
docker-machine restart
再びdocker pullを試して、やっとダウンロードを再開しました.
Error checking TLS connection: Error checking and/or regenerating the certs
docker-machineのipは動的に割り当てられているため、1、2回再起動した後、異なるIPが割り当てられる可能性があります.docker-machineにログインするには、証明書を再生成する必要があります.もう1つの解決策は、固定IPを設定することです.次に、固定IPをどのように配置するかを説明します.
docker-machine静的IPの設定
docker-machineのlinuxバージョンはCore Linuxで、リリース版ではなく、静的IPを直接割り当てることはできません.マシンプロセスを表示すると、デフォルトではudhcpcで動的IPが取得され、再起動すると異なるIPが取得される可能性があります.
docker-machine env default
で$DOCKER_を取得できますがHOSTですが、IPを固定する必要がある場合は、やはり面倒です.資料を集めたところ、docker-machineはIPを固定していないことが分かった.これはgithubでissueを提出したことがあるが、まだ修復されていない.コメントには/var/lib/boot 2 dockerディレクトリにbootsyncを新規作成する方法がある.sh,ファイル内設定固定IPifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up
しかし,この方法で設定されたIPは,機器起動20分程度ごとにバックグラウンドで起動されたdhcpクライアントによって再取得され,IPは新しいIPに設定される.
現在、一時的なソリューションは2つあります.
if [ $DEVICE = "eth1" ]; then
ifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up
else
...
fi
ファイル内のforループに判断条件を付け、eth 1ネットワークカードであれば固定IPを設定し、else他のネットワークカードはデフォルトでdhcpでIPを取得する
*/1 * * * * ifconfig eth1 192.168.99.150 netmask 255.255.255.0 broadcast 192.168.99.255 up