カテゴリー: Docker

VM覚書 WindowsServer2019 Hyper-Vインストール前

VMで仮想サーバ(Windows Server2019)を構築しているのだが、そのせいでHyper-Vのインストールがうまくいかない。
で、色々調べて試してムリそうだったんだが、YouTubeで外国人の人が何かやっているのを見て試してみることにした。

  • 仮想サーバはいったん終了
  • ストレージを右クリックして「データストアの参照」を選択
  • データストアブラウザで対象サーバのフォルダ内にある.vmxファイルをダウンロード
  • ダウンロードしたファイルをテキストエディタで開いて以下の編集
    guestOSの名前変更(必要かどうかは不明~英語でしゃべってるからよく分からんかった~)

    guestOS = "winhyperv"
    

    末尾に下記1行追加

    CPUID.V0 = "FALSE"
    
  • データストアブラウザで編集後保存したファイルを同じところにアップロードして上書き
  • 仮想サーバ再起動

Docker覚書 WindowServer ExperimentalをTrueにしたい

そもそもなんでWindowsServerにDockerを入れようとしているのか、自分でもよく分からなくなって、もう

勉強のため!

みたいなモードに入っている。
PowerShellで docker version と打ったとき、ClientとServerの情報が見られるのだが、
C:\Program Files\Docker\config\daemon.json
に、

{
  "experimental": true
}

を入れてみてもServer側のExperimental: がfalseになってしまうので、どうしたものかと思って
C:\ProgramData\docker\configのフォルダに同じdaemon.jsonを入れてサーバ再起動してみたら、

Server: Mirantis Container Runtime
 Engine:
  Version:          20.10.9
  API version:      1.41 (minimum version 1.24)
  Go version:       go1.16.12m2
  Git commit:       9b96ce992b
  Built:            12/21/2021 21:33:06
  OS/Arch:          windows/amd64
  Experimental:     true

とうまくいきやした!

Docker覚書 VMWareが使えない・・・のときの対処

VMWare Workstationを起動して、仮想環境を立ち上げようとしたらエラーが出た。

あぁー、Dockerを入れた所為だなぁ・・・
というので、Dockerをアンインストールしようかと思ったが、一旦Dockerを使えなくしてしまう方法を探し、以下の手順でVMWareを無事起動できるようにした。

  1. タスクバーの検索アイコンをクリックして「ローカルグループポリシーの編集」と入れて、ローカルグループポリシーにアクセス
  2. コンピューターの構成>管理用テンプレート>システム>Device Guardを選択し、「仮想化ベースのセキュリティを有効にする」の設定を無効にする。
  3. 次はコントロールパネル>プログラム>Windowsの機能の有効化または無効化をクリック。
  4. Hyper-Vのチェックを外す(下層もすべて外す)
  5. 適用ボタンをクリックすると、再起動するかどうか聞かれるが、ここでは再起動しない。
  6. コマンドプロンプトを念のため管理者権限で開いて、以下のコマンドを打つ。
    (Xドライブを作成するので、Xドライブががないことが前提。もしXドライブがすでにある場合は、「X:」の箇所を別のドライブに変更して実行。)

    mountvol X: /s
    copy %WINDIR%\System32\SecConfig.efi X:\EFI\Microsoft\Boot\SecConfig.efi /Y
    bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d “DebugTool” /application osloader
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path “\EFI\Microsoft\Boot\SecConfig.efi”
    bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions DISABLE-LSA-ISO,DISABLE-VBS
    bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
    mountvol X: /d
    

    PCによっては、以下のコマンドを打つ。

    bcdedit /set hypervisorlaunchtype off  
    

    参考URL「あさまのブログ VMWare仮想マシン起動時に「Device/Credential Guard には互換性がありません。」のエラー解決」

  7. そしてようやくPC再起動。
    (再起動後はDockerは使えなくなる。)

で・・・

これでVMWare Workstationが動くか!と思ったら動かなかった・・・

しょうがないので、VMWare Workstationを再インストール。で、うまくVMWareの仮想環境が起動できた。
ん~、PC再起動でうまくいくって書いてあったんだけど、なんか変なことやらかしたかな。
まぁ、でも取りあえずはVMWareがうまく動いたので一安心。
で、最終的にはDockerをアンインストールしようと思うのだが、なにかうまい手はないか、と思っていたら、VMWare上のLinuxにDockerをいれるという手順を紹介している人がいて、「あぁ、なるほどな」などと感心してしまった。
また時間があったら試す予定。
まだDocker環境上へのDeployを試してない。これが肝心なのに。

Docker覚書 Win10にインストールの巻

そろそろDockerぐらい使えないと!と思って、仕事が暇な今こそ!とチャレンジ。
で、WordpressとMySQLの環境を作って繋げてやろうと意気込んで開始して、後述する手順でうまくいった。

ただ、後から分かったが、同じ環境でVMWare Workstationも使っているので、Dockerを動かしている間はVMWare側は動かせない・・・
しまった!!!
と思いつつ、とりあえずはDockerインストールと環境立ち上げの手順だけの備忘録を投稿。

Windows10でDocker上にWordPressを立ち上げる

  1. Docker CE → Desktop Docker for Windows インストール
  2. Desktop Dockerを起動、Setting
    • スタートメニュー等よりDesktop Dockerを起動
    • タスクバーにDockerアイコンが表示されたらアイコンを右クリックしてSettingをクリック
    • DaemonのExperimentalにチェックしApply
    • NetworkのDNS ServerはFixed:を選択して「8.8.8.8」を設定
    • ResetでRestart Docker…をクリック
  3. コマンドプロンプトを起動
  4. Imageの取込コマンド実行(次のrunコマンド実行でimageがなかったら自動的に取り込むのでここは省略できる。)
    • docker pull mysql:5.7.25
    • docker pull wordpress:latest
    • docker images で取り込めたかどうか確認
  5. コンテナー作成・起動
    • docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3307:3306 mysql:5.7.25
    • docker run --name test-wordpress --link test-mysql:mysql -d -p 8081:80 wordpress
      • それぞれ、ポート番号は他と被らない番号にしておきます。
    • docker container ls -a  で作成できたかどうか確認
  6. localhost:8081に接続して確認
    • WordPressの初期設定画面が表示されたら、うまく動作していることになる。

うまくいかないパターン

  • DB接続できない
    • MySQLのバージョンがWordpressと噛み合ってないのが原因

他のDockerコマンド

  • docker exec -it {コンテナ名} /bin/bash
    • Linux上でコマンド操作可能に
    • cat wp-config.php で定義ファイル内の確認
  • docker stop {コンテナ名}  コンテナ停止
  • docker start {コンテナ名}  コンテナ開始
  • docker rm {コンテナ名}  コンテナ削除
  • docker rmi {イメージ名}  イメージ削除

他のLinuxコマンド

  • apt update
  • apt install -y vim (WordPressサーバ上で、VIMを利用する場合)
  • apt install -y procps (MySQLサーバ上でMySQLが動作しているか確認で利用)
  • ps aux (プロセス状態確認)
  • mysql -u root -p (MySQL接続)
  • exit (Linuxから抜ける)