概要
dockerを今まで少し弄ってきてアウトプットをしてこなかったのと最初の頃dockerfileで躓きまくっていたので誰かのためになればなという思いで書いていきます。
そして今回はdockerへの理解を深める為に既存のイメージ等は使用せず最小構成で作っていきます。
環境
- Ubuntu 22.04
- Docker 27.3.1
マシンスペック
- CPU
- core i7-6700
- メモリ
- 16GB
- ディスク
- SATA SSD 1TB
はじめに
dockerのインストール等は他の記事に分かりやすく書いてあるので、自分が分かりやすいなと感じた記事を紹介しておきます。
DockerFile作成
$ touch MinecraftServer.docker
$ nvim MinecraftServer.docker
自分はnvimを使っていますがviなり、nanoなりお使いのエディタに置き換えてやってください。
MinecraftServer.docker
FROM openjdk:21-slim
WORKDIR /MinecraftServer
EXPOSE 25565
VOLUME ["/MinecraftServer"]
CMD ["java","-Xms1G","-Xmx8G","-jar","server.jar","nogui"]
-
FROM openjdk:21-slim
OpenJDKのバージョン21の軽量バージョンを使用しています -
WORKDIR /MinecraftServer
コンテナのなかにMinecraftServerというフォルダを作成しそのフォルダをワークディレクトリとします -
EXPOSE 25565
25565番ポートをコンテナ内で使用します -
VOLUME ["/MinecraftServer"]
/MinecraftServer
でボリュームを作成しています。無くても動きますがあった方がいいです -
CMD ["java","-Xms1G","-Xmx8G","-jar","server.jar","nogui"]
マイクラサーバーを起動するコマンドです
コンテナを作成
$ docker build -t minecraft-server -f MinecraftTmp.docker .
MinecraftTmp.docker
があるフォルダで実行してください。
-
-t minecraft-server
作成するコンテナにminecraft-server
という名前(タグ)を付けます -
-f MinecraftTmp.docker
使用するDockerFileを指定します
コンテナの起動
$ docker run -d --name mc-server \
-p 25565:25565 \
-v /home/user/MinecraftServer:/MinecraftServer \
minecraft-server
-
-d
バックグラウンドで実行します -
--name mc-server
コンテナに名前を付けます -
-p 25565:25565
PC側の25565番をコンテナ内の25565番に転送します -
-v /home/user/MinecraftServer:/MinecraftServer
PC側の/home/user/MinecraftServer
をコンテナ内の/MinecraftServer
にマウント
コンテナの停止、起動
$ docker stop mc-server
$ docker start mc-server
これだけで停止と起動が完了します。簡単ですね!
終わりに
dockerはとても難しいですが使えるようになるとシステム構築の幅が広がりますね。自分もまだまだ勉強中ですが...
参考