我成功地shell到Docker容器使用:
docker exec -i -t 69f1711a205e bash
现在我需要编辑文件,我没有任何编辑器在里面:
root@69f1711a205e:/# nano
bash: nano: command not found
root@69f1711a205e:/# pico
bash: pico: command not found
root@69f1711a205e:/# vi
bash: vi: command not found
root@69f1711a205e:/# vim
bash: vim: command not found
root@69f1711a205e:/# emacs
bash: emacs: command not found
root@69f1711a205e:/#
如何编辑文件?
您还可以使用一个特殊的容器,它只包含您需要的命令:Vim。我选择了python-vim。它假设你想要编辑的数据在一个用Dockerfile构建的数据容器中:
FROM debian:jessie
ENV MY_USER_PASS my_user_pass
RUN groupadd --gid 1001 my_user
RUN useradd -ms /bin/bash --home /home/my_user \
-p $(echo "print crypt("${MY_USER_PASS:-password}", "salt")" | perl) \
--uid 1001 --gid 1001 my_user
ADD src /home/my_user/src
RUN chown -R my_user:my_user /home/my_user/src
RUN chmod u+x /home/my_user/src
CMD ["true"]
你可以通过挂载一个Docker卷(src_volume)来编辑你的数据,这个卷将由你的数据容器(src_data)和python-vim容器共享。
docker volume create --name src_volume
docker build -t src_data .
docker run -d -v src_volume:/home/my_user/src --name src_data_1 src_data
docker run --rm -it -v src_volume:/src fedeg/python-vim:latest
这样,就不需要更改容器。你只需要用一个特殊的容器来做这项工作。
您还可以使用一个特殊的容器,它只包含您需要的命令:Vim。我选择了python-vim。它假设你想要编辑的数据在一个用Dockerfile构建的数据容器中:
FROM debian:jessie
ENV MY_USER_PASS my_user_pass
RUN groupadd --gid 1001 my_user
RUN useradd -ms /bin/bash --home /home/my_user \
-p $(echo "print crypt("${MY_USER_PASS:-password}", "salt")" | perl) \
--uid 1001 --gid 1001 my_user
ADD src /home/my_user/src
RUN chown -R my_user:my_user /home/my_user/src
RUN chmod u+x /home/my_user/src
CMD ["true"]
你可以通过挂载一个Docker卷(src_volume)来编辑你的数据,这个卷将由你的数据容器(src_data)和python-vim容器共享。
docker volume create --name src_volume
docker build -t src_data .
docker run -d -v src_volume:/home/my_user/src --name src_data_1 src_data
docker run --rm -it -v src_volume:/src fedeg/python-vim:latest
这样,就不需要更改容器。你只需要用一个特殊的容器来做这项工作。