@kirokiro (kubo kazukai)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Dockerでpullしたphpのイメージが反映されず、前のバージョンが反映される。

解決したいこと

DokcerでPHPの8.0.0versionのイメージをdocker pullでインストールしました。
しかし、php -vでversionを調べると7.4.3になったままです。
以前インストールしたものがそのまま反映されているのかと思います。
どうしらたphp:8.0.0に変更ができるのでしょうか?

php:8.0.0のイメージをインストールしたい理由は「composer install」を実行した際にphpの8.0.0versionが必要で、7.4.3versionではできないとのエラーが出た為です。
ご回答よろしくお願いします。

発生している問題・エラー

/mnt/c/Users/user/Desktop/MyBBS$ php -v
PHP 7.4.3 (cli) (built: Oct 25 2021 18:20:54) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
NameError (uninitialized constant World)

Dockerのphp:8.0.0をインストールした際の表示画面

/mnt/c/Users/user/Desktop/MyBBS$ docker pull php:8.0.0
8.0.0: Pulling from library/php
6ec7b7d162b2: Pull complete 
db606474d60c: Pull complete
afb30f0cd8e0: Pull complete
3bb2e8051594: Pull complete
52bd7705fdb1: Pull complete
cd82b740739d: Pull complete
ba21efc45993: Pull complete
928ccbd6ee6f: Pull complete
4d733a81e088: Pull complete
Digest: sha256:915d3a58b572d57dc717bee490e5b10e0422a0a04f7b3dc732775df47762a275
Status: Downloaded newer image for php:8.0.0
docker.io/library/php:8.0.0

Dokerのイメージ一覧

/mnt/c/Users/user/Desktop/MyBBS$ docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
sail-8.0/app                 latest    c94a711aeda2   7 days ago      743MB
selenium/standalone-chrome   latest    aa76e50e7db2   11 days ago     1.2GB
getmeili/meilisearch         latest    d9d9cb7a7c66   2 weeks ago     64.7MB
redis                        alpine    5c08f13a2b92   3 weeks ago     32.4MB
mysql/mysql-server           8.0       d2e6e9727b37   3 weeks ago     456MB
php                          8.0.0     6d35ee0216ef   11 months ago   423MB
mailhog/mailhog              latest    4de68494cd0d   16 months ago   392MB

自分で試したこと

「docker pull php:8.0.0」のコマンド実行後に再起動

0 likes

1Answer

Comments

  1. @kirokiro

    Questioner

    ご回答ありがとうございます。
    入っていませんでした。

    コンテナに入った上で「php -v」を実行したら8.0.0versionになっていました。
    しかし、コンテナから出た後に「php -v」を実行すると7.4.3のままです。
    phpのversionを変えるにはコンテナに入った上で、何かの操作が必要なのでしょうか?

    今回実行した内容
    1.docker exec -it a2f /bin/bash でphp:8.0.0のコンテナに入る
    2.php -v でバージョン確認。php:8.0.0が表示。
    3.exitでコンテナを抜ける
    4.php -v でバージョン確認。php:7.4.3が表示。

    ### php:8.0.0のコンテナに入った状態

    ```
    /mnt/c/Users/user/Desktop/MyBBS$ docker exec -it a2f /bin/bash
    root@a2f5d54c84c9:/# php -v
    PHP 8.0.0 (cli) (built: Dec 18 2020 21:07:48) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    ```

    ### コンテナに入っていない状態

    ```
    /mnt/c/Users/user/Desktop/MyBBS$ php -v
    PHP 7.4.3 (cli) (built: Oct 25 2021 18:20:54) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
    ```
  2. コンテナに入らずphp8.0を使いたいなら、dockerとは関係ないですね。
    dockerの存在意味はPCとの環境を区分するためです。dockerはPC側の環境に影響を与えません。dockerでphp8.0をインストールしてもPCのphpバージョンは変わりません。
    PCでphp8.0を使いたいなら、php8.0をインストールすれば良いです。
    PCからコンテナ内のphp8.0を使いたいなら、docker exec -it a2f phpです。でもパスはコンテナ内が基準です。コンテナ内からPCのファイルはvolumeを使い以外接続できません。
  3. @kirokiro

    Questioner

    ありがとうございます。
    解決しました。
    php8.0をダウンロードし、Ubuntuのバージョンをアップデートしたら使えるようになりました。
    また、dockerの説明も分かり易く、理解できました。

Your answer might help someone💌