コマンドで起動できないので、Dockerコミュニティ版を使用します。ユーザで以下コマンド叩きます。Linux)というLinux互換機能が随分前から実装されていましたが、これはLinuxの全機能が使えるわけではなく様々な制限がありました。そのため、低レイヤーにアクセスするDockerのようなコンテナ機能や各種ネットワーク制御系アプリケーション等が動作せず使い勝手の悪いものでした。WSL2はHyper-Vを使った仮想マシン上でLinuxの本物のカーネルが動くため、これら制約がなくなりましたので早速使ってみます。管理者としてコマンドプロンプトを開き、WSL2を有効化します。10.0.19042.630機能を有効にしています[==========================100.0%==========================]操作は正常に完了しました。仮想マシンを有効化します。10.0.19042.630機能を有効にしています[==========================100.0%==========================]操作は正常に完了しました。Windowsを再起動します。再起動完了したら、コントロールパネルから「プログラムと機能」を開き、「Windowsの機能の有効化または無効化」の画面で、「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」にチェックを入れます。PowerShellを管理者として開きWSL2をデフォルトに設定します。Storeを開き、Linuxをインストールします。インストール(入手)しました。ダウンロードサイズは444.5MBでした。ダウンロードが終わると「起動」というボタンが表示されるので起動します。・・という表示が出力されます。その後、ユーザ名やパスワードを聞かれるので適宜設定してください。UbuntuがWSL2上で動いているかどうかは、PowerShell上で以下のコマンドを使って確認できます。VERSIONが2ならOKです。使って適宜アップデートなりパッケージインストールをしましょう。2020年10月31日13:52curlで取得したスクリプトに引数カテゴリbashIT技術インストール用シェルスクリプトをcurlでダウンロードし、そのままシェルに渡して実行することが増えてきました。インストールする場合、以下のコマンドでインストールする方法が紹介されています。いう引数を与えることで、バージョンを指定することができます。オプションを使えばできます。引数で与えると、このように引数の内容が表示されます。createで新しいコンテナ用のブリッジネットワークを作成する場合、コンテナに割り当てるIPの範囲を絞ることができます。指定すると、コンテナには172.16.0.1~255の範囲で割り当てられます。するとフリーズしてしまうのは、環境変数が悪さしてる可能性があります。ASKPASS関連の環境変数が定義されている場合、Linuxなら以下のようにunsetしてあげると、うまくpushできるようになるかもしれません。GIT_ASKPASS2020年10月25日19:10sshログインしても何も操作をさせないぜ!カテゴリIT技術sshトンネリングを目的にsshを使う場合、ログイン後の操作を制限したい場合があります。これは、sshサーバ側のユーザのauthorized_keysに「command」という設定を書くことで実現できます。authorized_keysを使うのでsshキーによるログインが前提の方法です。以下のように書かれているとします。root@localhostこの行に以下のようにcommandという設定を先頭に書き足します。ユーザは何もできません。情報を読み続けるだけの意味のないコマンドで、別のコマンドでも構いません。頃にリリースされていましたので、インストールしてみました。公式ドキュメントにも書かれていますが、インストール方法は簡単です。containerd.io以上です。docker2020年10月11日21:47ssh接続が切れたときの対処方法を考えるカテゴリIT技術sshsshの接続はサーバダウンやNW故障等、様々な理由で切断されます。端末の目の前にいるなら手動で再接続すれば良いのですが、いない場合はどんな方法で復旧できるかをまとめてみました。Debian系ならaptでインストールできます。いうオプションが必要です。以下はsshserverというホストにuserというユーザ名でポート22に接続しています。オプションは接続監視のオプションです。0を指定すると監視オプションは無効化されます。いったポート番号を指定すると、端末とsshserver間で定期的に指定したポートを使って実際に通信ができるか定期的にチェックしてくれます。いう記事がわかりやすいです。上記記事によると端末側とサーバ側で9000ポート、さらに端末側で9001(9000+1)ポートが使われていない必要があるようです。user@sshserverなお、自動で再接続をするには、sshキーを登録しておいてパスワードなしでログインできるようにしておいたり、sshキー登録が無理なら、テキストファイルにサーバ名やID,パスワードを書いておいて再接続時に自動で入力するようなソフトもあるようです。使うと端末のIPが変わったり、NWが切断されてもセッションを保つことができます。サーバ側にmoshサーバ、クライアントにmoshクライントが必要ですし、プロトコルにUDPを使うので、制約のある環境では使いにくいです。これもRHEL系ならEPELリポジトリを有効にしてyumやdnf、Debian系ならaptでインストールできます。いったクライアントソフトを使えば接続できます。その他sshクライアントが切断されたら自動で再接続するようなスクリプトを書くこともできると思います。等を使ってプロセス停止時に自動でsshコマンドを再起動する方法なども考えられます。puttyなら、この辺りの記事が参考になると思います。他にも、Bitviseといったsshクライアントはソフトウェアとして再接続機能が実装されているようです。いう絵文字で表示されるようになりました。この表示を元に戻す方法の紹介です。メニューバーから、ツール⇒オプションを選びます。いう表示に戻りました。ControllerのIngress設定例です。これが完璧な設定というわけではなく、あくまで一設定例です。難しい設定はspecに書けないので、以下のようにannotationsに書きます。Nginxのバージョン情報を隠してます。ModSecurityを用いてWAFを構築しています。WAFのルールにはOWASPを使いつつ、自分のルールも書けるようにしています。tlsやrulesの設定は環境に合わせて適宜修正してください。前後辺りに書くと良いでしょう。アクセスを防ぎたいなら以下のような設定になると思います。ipcountを紹介しました。いうIP計算に使えるコマンドがあるので紹介します。等のコマンドで簡単にインストールできると思います。使い分けですが、ざっくり書くとこのような感じです。関する計算ができます。範囲からホストアドレスやプレフィックスを計算したり、その範囲のIPの数などが簡単に分かります。ipcalc与えられたIPの情報を表示できます。表記が間違ってないかのチェックや、IPからホスト名の逆引きなどもできます。16進数に変換することができます。ipcalcと互換性はなく、ipcalcでできるホスト名逆引きなどはできません。ipcountネットワークアドレスとプレフィックスを指定すると、IPの範囲が分かります。[256]IPの範囲を以下のようにハイフンを挟んで指定すると、逆にネットワークアドレスやプレフィックスが分かります。[256]一つのサブネットで表現できない場合、複数のネットワークに分けて表示されます。[56]ちなみに、プレフィックスの代わりにサブネットマスク(255.255.255.0)は指定できないようです。コマンドを使いましょう。sipcalcipcalcでIPを指定すると、そのIPのクラスとプライベートアドレスなのかどうかを表示します。オプションを付けると、さらにIPを保有している国や、大まかな位置情報なども表示されます。sipcalcの場合、IPを指定すると主にIPの別進数(10,16表記が表示される。オプションを付けると、2進数表記も表示されるほか、IPのクラス等の情報が表示される。8.8.8.3~省略~プレフィックスを付けると以下の表示になります。青字がプレフィックスを付けない時との差分です。両コマンドとも、IPの範囲や数が表示されるようになります。254ipcalcはサブネットマスクを指定することもできます。8.8.8.254sipcalcもサブネットマスクを指定することもできます。255.255.255.0(表示は同じ)ipcalcはDNSへの問い合わせもできます。コマンド相当)を確認します。同様の機能は無いようです。8.8.8.8HOSTNAME=dns.google他にも、ipcalcでは、IPの表記が間違ってないか確認したり、サブネットマスクからプレフィックスの値だけを表示したりすることもできます。255.255.255.0PREFIX=242020年09月25日23:20Dockerコンテナイメージファイル(tar)からファイル抽出カテゴリdockerIT技術コンテナのイメージファイル(tar)から、Dockerを使わずにファイルを抽出する方法の紹介です。以下のpythonスクリプトを書きます。自身のpython3のパスに適宜読み替えてください。ディレクトリ名配下に抽出します。以下のようにコンテナ内の全ファイルが抽出されます。var/wwwこのような感じでファイルが抽出されました。いうプロジェクトの一部です。craneコマンド以外にもgcraneやk8schainといったコマンドが提供されています。Windows版は提供されていないので、今回はLinux環境が前提です。(pull)ダウンロード(pull)は、コンテナイメージのURLと保存先ファイル名(tar)を指定するだけです。DockerHub上のbusyboxコンテナをダウンロードしてみます。いうワーニングがでますが、無視して構いません。(push)アップロード(push)も、認証が特にかかっていないレジストリの場合は、以下のようにtarファイル名とアップロード先URL(ここではmyregistry:5000というサーバを想定)を指定します。pullと引数が逆なので注意してください。パスワードをコマンドラインで対話的に入力する機能はないようです。パスワードを直接指定してDockerHubにログインしてみます。mypasswordコマンドラインに直接パスワードを入力したくない場合、-pオプションの代わりに--password-stdinオプションを使って、標準入力からパスワードを受け取ることができます。いうテキストファイルにパスワードを書いて、以下のようにログインできます。認証情報が保存されます。コマンドでログインする必要はありません。ログイン後のpushは最初に紹介した方法と同じです。push先のパスにユーザ名が必要なので、以下のようなコマンドでpushできます。myusername/busybox:latest2020年09月24日21:49Dockerで日本語入力対応Linuxデスクトップ環境カテゴリdockerIT技術Dockerを使うと様々なアプリを簡単にhttps://github.com/Rosyuku/ubuntu-rdp起動できますが、基本的にCUIでの操作やWeb経由でのアクセスがメインだと思います。Linuxデスクトップ環境をコンテナ使って構築できると便利だなと思い探してみました。