启动了一个名为nginx的dockerised应用程序,然后在其中执行bash。令我惊讶的是,我无法在容器内找到vim,vi甚至是yum。
请原谅我,因为我对码头工人和学习都很陌生。
以下命令可用于重现问题。
docker run -d --name=my_nginxtemp nginx
docker exec -i -t my_nginxtemp bash
docker commit my_nginxtemp my_nginx
我的主机是Ubuntu 16.04,我正在使用最新的docker-engine和docker cli
root@jim-Ubuntu1504:/home/jim/web# docker version
Client:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.2
API version: 1.23
Go version: go1.5.4
Git commit: b9f10c9
Built: Wed Jun 1 22:00:43 2016
OS/Arch: linux/amd64
root@jim-Ubuntu1504:/home/jim/web#
请不要继续我自15.04以来升级的主机名:slight_smile:
root@jim-Ubuntu1504:/home/jim/web# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
root@jim-Ubuntu1504:/home/jim/web#
非常感谢任何帮助。
答案 0 :(得分:23)
sudo apt-get update
sudo apt-get install vim
我有同样的问题。我按照上面简单的两个步骤操作,它就像一个魅力。
答案 1 :(得分:9)
令我惊讶的是,我在该容器内找不到
vim
,vi
甚至yum
。
它只取决于nginx image及其基本图片:如果vim
从未安装过,那么您的容器将无法找到它。
您可以从nginx
和adding the software you need开始构建自己的图片。
FROM nginx
RUN apt-get update
RUN apt-get install vim
答案 2 :(得分:2)
为像我这样的初学者添加更多说明 有些容器是在ubuntu上构建的,因此你甚至找不到特定于RedHat / CentOS的yum包管理器。
<强> 1。使用exec进入容器:
username@hostname:/home/username $ docker container exec -it container_image_name bash
<强> 2。找出构建容器映像的操作系统并采取相应措施 现在,为了弄清楚构建容器映像的操作系统,我们还可以使用下面的内容检查操作系统版本:
root@5e9d0e3c1001:/# cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@5e9d0e3c1001:/#
然后在下面执行(我们正在进行更新的原因是它在第一次安装之前是强制性的):
root@5e9d0e3c1001:/# apt-get update
root@5e9d0e3c1001:/# apt-get install vim
参考:https://forums.docker.com/t/cannot-use-vim-vi-nano-yum-inside-docker-container/14905
答案 3 :(得分:1)
你可以创建一个Dockerfile来使用nginx docker镜像并修改它,你想添加...
FROM nginx
RUN ["apt-get","update"]
RUN ["apt-get","install","-y","vi"]
答案 4 :(得分:0)
这是我们的不得已的编辑器
echo "This is a workaround." > file.txt
echo "Added more text." >> file.txt
cat file.txt