不能在docker容器内使用vim,vi,nano,yum

时间:2016-06-08 06:42:10

标签: docker

启动了一个名为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#

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:23)

  

sudo apt-get update
  sudo apt-get install vim

我有同样的问题。我按照上面简单的两个步骤操作,它就像一个魅力。

答案 1 :(得分:9)

  

令我惊讶的是,我在该容器内找不到vimvi甚至yum

它只取决于nginx image及其基本图片:如果vim从未安装过,那么您的容器将无法找到它。

您可以从nginxadding 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