【Docker】コンテナにROOTで入る方法

【Docker】コンテナにROOTで入る方法
Dockerfileの構築時にUserを決めてしまうことがあります。
その状態でいつものおまじないをするとROOTじゃないのでアプリインストールが出来ないなど不都合も発生します。
と言う事で、コンテナにROOTで入るための備忘録です。
参考用のdocker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
version: '3' services: nginx: image: nginx:1.17 ports: - "8000:8000" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params - ./static:/static depends_on: - python mysql: image: mysql:5.7 container_name: SQL_CON volumes: - ./mysql/data:/var/lib/mysql - ./logs:/var/log/mysql - ./entrypoint/initdb.d/client/:/docker-entrypoint-initdb.d - ./entrypoint/startdata/:/start-data env_file: ./mysql/.env.dev ports: - "3306:3306" python: container_name: PY_CON build: ./python command: uwsgi --socket :8001 --module mysite.wsgi --logto /tmp/uwsgi.log volumes: - ./src:/code - ./static:/static expose: - "8001" depends_on: - mysql restart: always |
こんな感じで作ったコンテナに対してROOTログインしてみたいと思います。
手段は2つあります。
- サービス名を指定して docker-compose で入る
- コンテナIDを指定してdocker で入る
docker-composeで入る方法
私は普段のログインでdocker-composeを利用しているので馴染みやすいです。
user rootで入るよと宣言してログインするサービス名を記載します。
具体的には下の様になります。
1 |
sudo /usr/local/bin/docker-compose exec --user root python bash |
具体例で記載しているpythonは【docker-compose.yml】に記載したサービス名です。
docker-composeにパスを通している場合は[ /usr/local/bin/ ]省略してdocker-composeでOKです。
コンテナIDを指定してdockerで入る方法
コンテナIDを記載する必要があるので【sudo docker ps -a】で必ずIDを把握しておきましょう。
具体的には下の様になります。
1 |
sudo docker exec -it -u root 25fa816006b2 bash |
【コンテナID】はコンテナイメージ名やサービス名に置き換える事はできません。
なので、現在立ち上がっているコンテナIDを【sudo docker ps -a】で調べる必要があります。
複数のサイトを管理している場合は同じサービス名で動けるdocker-compose利用が共通化出来ていいですね。
でも文字数が少ないのはdockerの方です。
まとめ
今回のこの記事は私のポカから生まれたものです。
立ち上げたコンテナにvimが入ってなかったため インストールしようとした所「permission 確認しろ」とはねられたんです。で、(root権限あると思い込んでるので)命令の書き方変えてみたり、OS違う奴入れて命令違うのか?とか右往左往。
DockerfileでUser指定してるからコンテナにrootで入ってないし、root権限持たせて無いし、そもそもsudo入れてないし、と。まぁ一番はDockerfileでvim入れとけって事なんですけどね。と言う事で今はvimインストール書いたDockerfileに作り変えました。
-
前の記事
タイピングスキルを評価してくれる面白いサイト 2020.11.04
-
次の記事
【Python】django-admin が動かない!そんな時に見る場所はココ 2020.11.09
コメントを残す