Docker Dockerfile

FROM

ベースイメージを指定

RUN

コンテナ上のOSへの命令を指定
RUN apt-get update && install -y ~

LABEL

タグ付け

LABEL maintainer yone

LABEL version=1.0 maintainer=office\ yone
※=を用いる書式の場合、&nbsp:にはエスケープが必要

EXPOSE

コンテナがListenするポートをDockerに通知、外部からの接続を指定

EXPOSE 80

ENV

環境変数の指定

ENV HOST=LOCALHOST \
USER=root \
PASSWORD=XXXXX \

COPY

イメージのbuild時、ホストOS錠のファイルをコンテナへのコピーを指定

COPY コピー元 コピー先
COPY httpd.conf /usr/local/apache2/conf/httpd.conf

ADD

イメージのbuild時、ホストOS錠のファイルをコンテナへのコピー&展開(解凍)を指定

VOLUME

コンテナ上のマウントされるディレクトリの指定

作成例

apache

※Dockerfile
FROM httpd
COPY ./html/index.html /usr/local/apache2/htdocs/
COPY ./html/httpd.conf /usr/local/apache2/conf/httpd.conf
EXPOSE 80

nginx

※Dockerfile
FROM nginx
COPY ./default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

MySQL

※Dockerfile
FROM mysql:5
ENV MYSQL_ROOT_PASSWORD=XXXXXX
CMD [
"mysqld",
"--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"]

※Dockerコマンド
docker run
--volumes-from=コンテナ名
--name=コンテナ名
--net=ネットワーク名
-d イメージ名

PHPMyAdmin

※Dockerfile
FROM phpmyadmin/phpmyadmin
ENV PMA_HOST=mysql-container \
PMA_USER=root \
PMA_PASSWORD=XXXXXX

※Dockerコマンド
docker run
--net=ネットワーク名
--name=コンテナ名
-p 8080:80
-d イメージ名

WordPress

※Dockerfile
FROM wordpress
ENV WORDPRESS_DB_HOST=MySQLコンテナ名
WORDPRESS_DB_USER=MySQLユーザ名
WORDPRESS_DB_PASSWORD=MySQLパスワード

※Dockerコマンド
docker run
--net=ネットワーク名
--name=コンテナ名
-p 80:80
-d イメージ名

Follow me!

次の記事

Docker docker-compose