phpのコンテナを起動してみる

php:7.0-apacheを動かす

mkdir ~/work

cd ~/work

docker run -d -p 80:80 --name myapp php:7.0-apache
# ===================================================
php:7.0-apache ... 7.0-apacheがタグ
-d ... バックグラウンドで起動
-p 80:80 ... localhost:80番をコンテナ:80番へポートフォワード
--name myapp ... myappと名付ける
# ===================================================

# イメージがダウンロードされ、
docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
php                 7.0-apache          aa67a9c9814f        9 months ago        368MB

# myappという名前でコンテナを起動されている
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
aa474e4e6a5e        php:7.0-apache      "docker-php-entrypoi…"   39 seconds ago      Up 33 seconds       0.0.0.0:80->80/tcp   myapp

 
 

ファイルを設置

# phpファイルを設置
docker exec -it myapp bash

echo '<?php phpinfo();' > index.php

exit

# IPを調べてブラウザで表示して確認
curl ifconfig.io

# 停止したらアクセスできなくなる
docker stop myapp

# コンテナ内で作成したファイルはある?ない?手元で確認できない?
# 結果

 
 

ボリュームをマウントしてファイルを設置

# ローカルPC内でテスト用のPHPファイルを作成しておく
touch teeeeeeeeeeeeeest.php
vim sample.php

# docker run で作成したコンテナを削除しておく
docker ps -a

docker rm myapp

docker run -d -p 80:80 --name myapp -v ~/work/:/var/www/html php:7.0-apache
# ======================================================================
-v ~/work/:/var/www/html ... 
    コンテナ内の /var/www/html ディレクトリを
    ローカルPC内の ~/work にマウントする
# ======================================================================

docker exec -it myapp bash

ls -al
# ======================================================================
total 12
drwxrwxr-x 2 1000 1000 4096 Oct 13 10:02 .
drwxr-xr-x 1 root root 4096 Dec 29  2018 ..
-rw-rw-r-- 1 1000 1000  268 Oct 13 10:02 sample.php
-rw-rw-r-- 1 1000 1000    0 Oct 13 10:02 teeeeeeeeeeeeeeeeeeeeeeest.txt
# ======================================================================

 
 

docker run実行時 iptablesエラーになる

Docker 管理のネットワークファイルの再構成をしてみる
ネットワークの設定ファイルを /tmp/ にバックアップ

sudo ls -l /var/lib/docker/network/files

sudo mv /var/lib/docker/network/files /tmp/docker-iptables-err

sudo systemctl restart docker

sudo ls -l /var/lib/docker/network/files

 
 

参考にした本

マンガでわかるDocker ②

カテゴリー: 技術

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です