LoginSignup
3
2

More than 5 years have passed since last update.

Docker pull commit push Dockerfile Drupal環境をつくる

Last updated at Posted at 2015-11-20

Dockerのインストール、pull、commit、push、Dockerfileからのbuildなど、一通りの事をDrupal環境を作ることを目的にやってみましょう。

環境:VMWarePlayer or VirtualBoxの仮想マシン上にCentOS7.1を初期インストール

事前にDokerHubのアカウントを作成しておきましょう。

Dockerのインストール

1.Dockerのインストール

コマンド
# yum -y install docker

2.Dockerの自動起動設定及びサービスの起動

コマンド
# systemctl enable docker.service
# systemctl start docker.service

3.コンテナーイメージへのディスク最適化設定追加

コマンド
# vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled'
↓
OPTIONS='--selinux-enabled --storage-opt dm.no_warn_on_loop_devices=true'
:wq

4.Dockerサービスの再起動

コマンド
# systemctl restart docker.service

DockerfileからDrupal環境作成

1.build用のディレクトリを作成

コマンド
# mkdir ~/build_drupal

2.Dockerfileを作成

コマンド
# cd build_drupal
# vi Dockerfile
Dockerfileのソースは事項参照
:wq
Dockerfile
#centos6のイメージを取得
FROM centos:centos6

#Dockerfile作成者
MAINTAINER linaction

#タイムゾーンの設定
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#yumによる必要パッケージのインストール
RUN yum -y install httpd mysql-server mysql-client mysql-devel mysql-utilities php php-common php-mbstring php-gd php-xml php-xmlrpc php-devel php-cli php-pdo php-pgsql php-mysql php-odbc php-pear tar wget unzip

#tmpディレクトリに移動
WORKDIR /tmp/

#Drupalファイルのダウンロード
RUN wget http://ftp.drupal.org/files/projects/drupal-7.41.zip

#ダウンロードしたDrupalファイルの解凍
RUN unzip drupal-7.41.zip

#不要ファイルの削除
RUN rm -f ./drupal-7.41.zip

#Drupalディレクトリのリネーム
RUN mv drupal-7.41 drupal

#Drupalディレクトリのリネーム
RUN mv drupal /var/www/html

#日本語化対応ファイルのダウンロード
RUN wget http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.41.ja.po

#日本語化対応ファイルを対象ディレクトリに移動
RUN mv drupal-7.41.ja.po /var/www/html/drupal/profiles/standard/translations

#drupalディレクトリの権限変更
RUN chown -R apache:apache /var/www/html/drupal

#mysqldの起動、DB作成、ユーザ作成および権限設定、mysqldの停止
RUN service mysqld start && mysql -u root -e "CREATE DATABASE drupal_db; GRANT ALL PRIVILEGES ON drupal_db.* TO 'drupal'@'localhost' IDENTIFIED BY 'drupal123'; FLUSH PRIVILEGES;" && service mysqld stop

#mysqld,httpdの起動スクリプトの作成
RUN echo -e "service mysqld start\nservice httpd start\n/bin/bash" > /startService.sh

#mysqld,httpdの起動スクリプトの権限設定
RUN chmod o+x /startService.sh

#公開ポート
EXPOSE 80

#mysqld,httpdの起動スクリプトの実行
CMD /startService.sh

3.Dockerfileを実行

コマンド
# docker build -t DockerHubアカウント名/drupal:ver7.41 ~/build_drupal
・
・
Successfully built 0c4e45b86bcd

4.コンテナーを起動

コマンド
# docker run -itd -p 8000:80 --name drupal741 DockerHubアカウント名/drupal:ver7.41
3ce407416874308af370951ecf56c77b53e2aa405ba20aae51593fd3a0e2e108

コンテナーのcommit

1.ブラウザ確認

http://VirtualBoxのIPアドレス:8000/drupal/」にアクセスし、Drupalの管理画面が表示されることを確認

2.コンテナーを停止

コマンド
# docker stop drupal741

3.コンテナーを保存

コマンド
# docker commit drupal741 DockerHubアカウント名/drupal:ver7.41
cf75652d0f8a1509a5ad132ecf1214416c2b8dbf9fe9f93830ab8b51e738db73

4.コンテナーイメージを確認

コマンド
# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
DockerHubアカウント名/drupal          ver7.41              cf75652d0f8a        56 seconds ago      474.9 MB
docker.io/DockerHubアカウント名/centos   centos6             ce76491a3be1        2 hours ago         190.6 MB

コンテナーイメージをDocker Hubにpush

1.Docker Hubにログイン

コマンド
# docker login
Username:
Password:
Email:
Login Succeeded

2.Docker Hubにコンテナーイメージをpush

コマンド
# docker push DockerHubアカウント名/drupal
Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/DockerHubアカウント名/drupal] (len: 0)
・
・
Digest: sha256:97e3bd8b7ed451163af7284513d398c426c796451d343400a9859156c1a8c021

3.リポジトリーを確認

コマンド
# docker search DockerHubアカウント名
INDEX       NAME                            DESCRIPTION               STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/DockerHubアカウント名/drupal

コンテナーイメージを再ダウンロード

最後に全てのイメージと停止コンテナを削除して、pushしたDrupalのコンテナーイメージをダウンロードして起動してみましょう。

1.停止コンテナの一括削除

コマンド
# docker rm `docker ps -a -q`
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

2.イメージの一括削除

コマンド
# docker rmi イメージID
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

3.Drupalのコンテナーイメージをダウンロード

コマンド
# docker pull -a DockerHubアカウント名/drupal

4.コンテナーを起動

コマンド
# docker run -itd -p 8000:80 --name drupal741 DockerHubアカウント名/drupal:ver7.41

5.ブラウザ確認

http://VirtualBoxのIPアドレス:8000/drupal」にアクセスし、Drupalの管理画面が表示されることを確認

DrupalのMySQL情報
DB名:drupal_db
アカウント:drupal
パスワード:drupal123

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2