Docker の紹介
Tim Sangster
Software Engineer @ DataCamp
FROM、RUN、およびCOPYはファイルシステムを介して相互作用します。
COPY /projects/pipeline_v3/start.sh /app/start.sh
RUN /app/start.sh
いくつかは他の指示に直接影響します:
WORKDIR: 以降のすべての指示の作業ディレクトリを変更しますUSER: 以降のすべての指示についてユーザーを変更しますファイルシステムのルートからすべてのパスを開始する場合:
COPY /projects/pipeline_v3/ /app/
長いパスを扱う場合に煩雑になります:
COPY /projects/pipeline_v3/ /home/my_user_with_a_long_name/work/projects/app/
または、WORKDIR を使用してください:
WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
すべてのコマンドにフルパスを使用する代わりに:
RUN /home/repl/projects/pipeline/init.sh
RUN /home/repl/projects/pipeline/start.sh
WORKDIRを設定する:
WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
フルパスを使用する代わりに:
CMD /home/repl/projects/pipeline/start.sh
WORKDIRを設定する:
WORKDIR /home/repl/projects/pipeline/
CMD start.sh
コマンドの上書きもWORKDIRで実行されます:
docker run -it pipeline_image start.sh
$$
ベストプラクティス
Ubuntu -> デフォルトでは管理者
FROM ubuntu --> Root user by default
RUN apt-get update --> Run as root
USER Dockerfileの命令:
FROM ubuntu --> Root user by default
USER repl --> Changes the user to repl
RUN apt-get update --> Run as repl
Dockerfileでユーザーをreplに設定する場合:
FROM ubuntu --> Root user by default
USER repl --> Changes the user to repl
RUN apt-get update --> Run as repl
repl ユーザーでもコンテナーを起動します:
docker run -it ubuntu bash
repl@container: whoami
repl
| 使用法 | Dockerfile 命令 |
|---|---|
| 現在の作業ディレクトリを変更する | WORKDIR <path> |
| 現在のユーザーを変更 | USER <user-name> |
Docker の紹介