DOCKERでRUNコマンドを仕込んでみる。 | 自分、ぼっちですが何か? (taki-lab.site)
今回はコンテナ起動時にコマンドを実行するように仕込むやり方です。
サンプルとして、nginxを起動させる方法をやってみます。
プロジェクト構成
Dockerfile
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y \
nginx \
tzdata\
&& rm -rf /var/lib/apt/lists/*
ENV TZ=Asia/Tokyo
EXPOSE 80
COPY src/index.html /var/www/html/
CMD ["nginx", "-g", "daemon off;"]
最後にCMDコマンドがあるのですが、
これを記述すると、コンテナ起動時に,コマンド
nginx -g daemon off
が実行されます。
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content =" width = device-width, initial-scale=1.0">
<title>Sample</title>
</head></head>
<body>
<h1>こんにちは! Docker! </h1>
<p id="msg"></p>
<script language="javascript" type="text/javascript">
const msg = document.getElementById("msg");
var now = new Date();
var y = now.getFullYear();
var m = now.getMonth() + 1;
var d = now.getDate();
var h = now.getHours();
var mi = now.getMinutes();
var s = now.getSeconds();
msg.innerHTML = `ただ今の日時は${y}/${m}/${d} ${h}:${mi}:${s} です!`;
</script>
</body>
</html>
イメージのビルド
~/dockerenv/ex03$ docker image build -t ex03/nginx:1.0 .
コンテナ起動
~/dockerenv/ex03$ docker run --name ex03_websv -d --rm -p 8080:80 ex03/nginx:1.0