質問: ### ■質問 Dockerコンテナ内(WordPress用のコンテナ)で使用できるbashシェルコマンド(例: cd, ls)と、できないコマンド(例: vi, vim)があります。使用可能なコマンドの一覧を知りたいのですが、何のコマンドリスト(?)が基準になっているのでしょうか。 <再現手順> ※前提: DockerでWordPressをupした状態 1docker exec -it WordPressのコンテナID /bin/bash というコマンドを実行して、root@WordPressのコンテナID:/var/www/html# に入る 2DockerのWordPressコンテナ内で、cd、ls、pwdコマンドは可能だが、viなどは実行できずにbash: vi: command not foundというようなエラーが出る。 ### ■背景 以下の質問(解決済み)からの派生質問です。 [https://teratail.com/questions/159647](Dockerコンテナ内のディレクトリにターミナルでアクセスする方法
回答: すごくざっくりした回答になってしまいますが、コンテナ内の `/bin/` 配下にある実行ファイルはコマンドとして実行できます。 試しにコンテナにアタッチしてもいいですし、コンテナに対して `exec` サブコマンドで `/bin/ls /bin/` を実行してみてください。 とりあえず自分の手元のコンテナではこんな具合です。 ``` tomcat7@2b69f2c83c0c:/var/lib/tomcat7$ ls /bin/ bash dd false ip ln more ps sh systemd tailf vdir zfgrep cat df fgrep journalctl login mount pwd sh.distrib systemd-ask-password tar wdctl zforce chgrp dir findmnt kill loginctl mountpoint rbash sleep systemd-escape tempfile which zgrep chmod dmesg grep less ls mv readlink ss systemd-inhibit touch ypdomainname zless chown dnsdomainname gunzip lessecho lsblk netstat rm stty systemd-machine-id-setup true zcat zmore cp domainname gzexe lessfile mkdir networkctl rmdir su systemd-notify umount zcmp znew dash echo gzip lesskey mknod nisdomainname run-parts sync systemd-tmpfiles uname zdiff date egrep hostname lesspipe mktemp pidof sed systemctl systemd-tty-ask-password-agent uncompress zegrep ``` もうちょっと解説が欲しい場合は、コメントでお気軽にお尋ねください。