92007


コンテナ作成時に、-vオプションを使用し、ローカルのディレクトリやファイルをコンテナ内に同期させることができますが、1回、コンテナを停止し、ローカル側で、ファイル等の修正を行い、docker
container startで起動したとき、修正等を行ったファイルも、再起動を行ったコンテナ内に同期される（同じ状態）のでしょうか？

同期させて起動（start）する場合には、docker container startで何かオプションが必要になるのでしょうか？

# dockerfile

[code]

    FROM python
    WORKDIR /tmp/mydir
    COPY ./ex01 /tmp/mydir/
    CMD ["/bin/bash"]
    
[/code]

# コンテナ作成・起動コマンド

[code]

    docker container run -it --name py-01 -v ${PWD}/ex01:/tmp/mydir img_ex01_py_01
    
[/code]


CC BY-SA 4.0
2022-11-05T01:43:23.097
92006
2022-11-05T03:37:27.073
2022-11-05T02:03:09.180
question
docker
docker container startとローカルPCの同期について


コメントした点について、回答の方で再現できるコードを書きました。

ご提示頂いたdockerfileをDockerfileで用意して頂き、以下をhoge.shで保存してください。

[code]

    mkdir ex01
    docker build -t img_ex01_py_01 .
    echo 'writing before the container start...' > ./ex01/hoge.txt
    docker container run -it --name py-01 -v ${PWD}/ex01:/tmp/mydir img_ex01_py_01 bash
    echo 'writing after the container stopped...' >> ./ex01/hoge.txt
    docker container start -i py-01
    docker container rm py-01
    
[/code]

端末から以下のように実行してください(途中端末から入力する必要があります)。

[code]

    $ bash -x hoge.sh
    + mkdir ex01
    + docker build -t img_ex01_py_01 .
    Sending build context to Docker daemon  3.584kB
    Step 1/4 : FROM python
     ---> 00cd1fb8bdcc
    Step 2/4 : WORKDIR /tmp/mydir
     ---> Using cache
     ---> 9a0978729a11
    Step 3/4 : COPY ./ex01 /tmp/mydir/
     ---> Using cache
     ---> 6286728cb827
    Step 4/4 : CMD ["/bin/bash"]
     ---> Using cache
     ---> 95d2976d0da2
    Successfully built 95d2976d0da2
    Successfully tagged img_ex01_py_01:latest
    + echo 'writing before the container start...'
    + docker container run -it --name py-01 -v /home/user/soj/92006/ex01:/tmp/mydir img_ex01_py_01 bash
    root@682e70196520:/tmp/mydir# cat >>hoge.txt
    aaaaa
    root@682e70196520:/tmp/mydir# exit
    exit
    + echo 'writing after the container stopped...'
    + docker container start -i py-01
    root@682e70196520:/tmp/mydir# cat hoge.txt
    writing before the container start...
    aaaaa
    writing after the container stopped...
    root@682e70196520:/tmp/mydir# exit
    exit
    + docker container rm py-01
    py-01
    $ 
    
[/code]

最初のdocker container runで書き込んだ内容の前後に、dockerコンテナ外での書き込みが反映されていることが、docker
container startで再開したcatで分かると思います。


CC BY-SA 4.0
2022-11-05T03:37:27.073
92007
2022-11-05T03:37:27.073
54957
92006
answer