Dockerセットアップ
やったこと
1. Windows10 Home EditionへのDockerインストール
2. Tutorialの実施
3. Redmineコンテナの追加
1. Windows10 Home EditionへのDockerインストール
必要な作業
DockerのページからWindows用のインストーラーをゲット
インストーラー(2021/4/18時点)
Windows に Docker Desktop をインストール — Docker-docs-ja 19.03 ドキュメント
システム要件が記載されており、Homeエディションが対象に入っていないが実行しても特にエラーはなし。Homeエディションに過去仮想化(Hyper-Vなど)が実装されていなかったことに起因している模様。
Dockerのインストーラーを実行し、特に問題なくインストール完了。
自分の環境がWSL2をすでにインストール済みだったので、その辺の制約もなかった可能性がある。
参照:
Windows 10 HomeへのDocker Desktop (ver 3.0.0) インストールが何事もなく簡単にできるようになっていた (2020.12時点) - Qiita
2. Tutorialの実施
必要な作業
インストールが終了し、Dockerが立ち上がるとTutorialをするか出てくる。
その通りに実行すると開始される。
Tutorialのステップは4つ(記憶しているレベル)
docker イメージの入手
docker pullでgitからイメージor Repositoryをとる
docker copy でコピーする。
docker のイメージをビルド
docker build でイメージor Repositoryをビルド
docker runでコンテナ作成とスタート
docker run でコンテナ名の設定、コンテナのportマッピングを行う。
コンテナ内の待ち受けポートとlocalhostのポートのマッピングを-pで指定。
これをしないとlocalhost:80とかのアクセスができない。
redmineのjust start に従ってやると、ここの指定がないからアクセスできずに苦しんだ。
docker hubへのイメージアップロード
アカウント作成をする
docker pushでTutorialのイメージをdocker hubにアップロード
docker --helpでコマンドのヘルプ見ながらの操作が良い。
docker runしたら、docker ps -aでコンテナ一覧を参照
起動失敗してたら、exitコードが0以外になってる。
docker psで見るとstartされてるコンテナが見える。startしてないと見えない。
docker stopでコンテナ停止。docker rmでコンテナ自体を削除という流れのよう。
参照:だいたいここに書いてる内容をやる。この内容のほうが難しい。
イメージの構築と実行 — Docker-docs-ja 19.03 ドキュメント
3. Redmineコンテナの追加
docker hubの検索窓で"redmine"で検索
https://hub.docker.com/_/redmine
コマンド:docker pull redmineが出てるので、それをコピって実行。
上記サイトのHow to use this imageを参照してそのまま実行。
動作確認とoperation練習のため、sqlight3版でやる。
コンテナ内のファイルにのみ記録されるから、永続的な利用の場合はDBを使うほうにするのが望ましいと思う。あくまでお試し。
docker runで開始するとき、自端末からアクセスするために-pの設定を忘れずに。
上記サイトにも後半でport mappingに記載はされているが、なかなか気づかず。
docker run -d --name some-redmaine -p 3000:3000 redmine
ヘルプにも記載あるけど、オプション指定はイメージ名(redmine)の前に入れる。
エラーなく実行出来たら、docker ps で確認。表示されればOK。
portsカラムに0.0.0.0:3000 -> 3000/tcpって出てればマッピングもOK
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d018f816103c redmine "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:3000->3000/tcp some-redmine
ブラウザでhttp://localhost:3000でredmineの画面が出てくることを確認
こんな感じです。