BETA

photon OS 3.0でdockerを使えるようにする

投稿日:2019-07-01
最終更新:2019-07-01

photon OSのマシン(photon01)上で作業

dockerサービス状態確認

[email protected] [ ~ ]# systemctl status docker  
動いて無さそう  

リモートから使えるようにする設定追加

リモート(windowsデスクトップマシン)からリモートで使うことを想定して設定。  
セキュリティ上SSLにすべきみたいだが、取りあえずは非暗号化通信の設定を。  
[email protected] [ ~ ]# vi /usr/lib/systemd/system/docker.service  
[email protected] [ ~ ]# cat /usr/lib/systemd/system/docker.service  
省略  
#ExecStart=/usr/bin/dockerd  
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  
省略  

さらっと書いたけど、これ調べるのとトライアンドエラーで数時間かかった、、、

起動

[email protected] [ ~ ]# systemctl daemon-reload  
    いらないかも  
[email protected] [ ~ ]# systemctl start docker  
[email protected] [ ~ ]# systemctl enable docker  
[email protected] [ ~ ]# systemctl status docker  
動いてる&enabledになってる(=自動起動になった)のを確認  

docker動作確認1

[email protected] [ ~ ]# docker version  
Client:  
 Version:           18.06.1  
 API version:       1.38  
 Go version:        go1.10.7  
 Git commit:        e68fc7a  
 Built:             Mon Feb  4 16:35:01 2019  
 OS/Arch:           linux/amd64  
 Experimental:      false  

Server:  
 Engine:  
  Version:          18.06.1  
  API version:      1.38 (minimum version 1.12)  
  Go version:       go1.10.7  
  Git commit:       e68fc7a  
  Built:            Mon Feb  4 16:36:56 2019  
  OS/Arch:          linux/amd64  
  Experimental:     false  

docker動作確認2

[email protected] [ ~ ]# docker run -d -p 80:80 --rm --name localtest vmwarecna/nginx  
[email protected] [ ~ ]# docker ps  
localtestって名前のコンテナが動いてることを確認  
他PCのブラウザからphoton01にアクセスしてWEBサイト表示されることを確認  
[email protected] [ ~ ]# docker stop localtest  

オプションは下記っぽい、触り始め直後の怪しい知識

  • docker runはコンテナ起動
    • -dは、バックグラウンド起動ぽい
    • -pは、ポートフォアーディング設定で、左がホスト(ここだとphotonOSのphoton01)のTCPポート、右側がコンテナ側のTCPポート
    • --rmは、コンテナを停止すると自動で削除してくれる
    • -nameは、コンテナ名。省略するとUUIDっぽいのが付くが削除とかの操作するときにUUID指定がめんどいのでコンテナに名前付ける方が良い
    • vmwarecna/nginxがイメージ名、ローカルになければ自動でダウンロードしてくれるみたい
  • docker psはコンテナ一覧表示、-a付けないと見れないのもあるときがある
  • docker stopでコンテナ停止。今回は起動時に--rm付けているので、勝手に削除される。付けてない場合はdocker rmで削除する必要あり

firewall穴開け

windowsから使おうとしたときに発覚したけど、ここに書いておきます。

[email protected] [ ~ ]# vi /etc/systemd/scripts/ip4save  
dockerのTCPポート2375に関するルール追加  
[email protected] [ ~ ]# cat /etc/systemd/scripts/ip4save  
# init  
*filter  
:INPUT DROP [0:0]  
:FORWARD DROP [0:0]  
:OUTPUT DROP [0:0]  
# Allow local-only connections  
-A INPUT -i lo -j ACCEPT  
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT  
#keep commented till upgrade issues are sorted  
#-A INPUT -j LOG --log-prefix "FIREWALL:INPUT "  
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT  
-A INPUT -p tcp -m tcp --dport 2375 -j ACCEPT  
-A OUTPUT -j ACCEPT  
COMMIT  

メモにサービス再起動手順書いてないな、、、、したと思うんだけど。多分下記でいいはず、たぶん

systemctl status iptables  

ここからwindows10のPCで作業

docker desktop for windows動作確認

Docker Desktop for Windowsってのをインストール。Docker clientだけインストできれば良いみたいなんだけどよく分からなかったので、、、
powershell起動

ローカルのhyper-v上でVM動いちゃってたりするはずなのはあとで対処、、、

PS D:\> docker ps  
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES  
PS D:\> docker version  
Client: Docker Engine - Community  
 Version:           18.09.2  
 API version:       1.39  
 Go version:        go1.10.8  
 Git commit:        6247962  
 Built:             Sun Feb 10 04:12:31 2019  
 OS/Arch:           windows/amd64  
 Experimental:      false  

Server: Docker Engine - Community  
 Engine:  
  Version:          18.09.2  
  API version:      1.39 (minimum version 1.12)  
  Go version:       go1.10.6  
  Git commit:       6247962  
  Built:            Sun Feb 10 04:13:06 2019  
  OS/Arch:          linux/amd64  
  Experimental:     false  
PS D:\>  

docker desktopの接続先変更

非暗号化だと、環境変数で接続先とポート指定するだけでいいみたい。
暗号化してると、証明書等も必要になるようで。そのうちやらないとな、、、

PS D:> $env:DOCKER_HOST="tcp://192.168.1.210:2375"  
PS D:> docker version  
Client: Docker Engine - Community  
 Version:           18.09.2  
 API version:       1.38 (downgraded from 1.39)  
 Go version:        go1.10.8  
 Git commit:        6247962  
 Built:             Sun Feb 10 04:12:31 2019  
 OS/Arch:           windows/amd64  
 Experimental:      false  

Server:  
 Engine:  
  Version:          18.06.1  
  API version:      1.38 (minimum version 1.12)  
  Go version:       go1.10.7  
  Git commit:       e68fc7a  
  Built:            Mon Feb  4 16:36:56 2019  
  OS/Arch:          linux/amd64  
  Experimental:     false  

よく見るとServerの方のバージョン等が変わってた

リモートからコンテナ作成テスト

PS D:\> docker run -d -p 80:80 --rm --name remotetest vmwarecna/nginx  
PS D:\> docker ps  
localtestって名前のコンテナが動いてることを確認  
ブラウザでphoton01にアクセスしてWEBサイト表示されることを確認  
PS D:\> docker stop remotetest  
PS D:\>  

テストに使ったnginxのイメージ削除

PS D:\> docker images  
PS D:\> docker rmi vmwarecna/nginx  
PS D:\> docker images  
  • docker imagesでローカルに有るイメージ一覧表示
  • docker rmiでイメージ削除

取りあえず終了!

これでdocker環境出来たので次からはzabbix4.0テストじゃー

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

藤枝の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!