Tôi đã cài đặt docker trên máy ảo lưu trữ của mình. Và bây giờ muốn tạo một tập tin bằng cách sử dụng vi
.
Nhưng nó hiển thị cho tôi một lỗi:
bash: vi: command not found
Tôi đã cài đặt docker trên máy ảo lưu trữ của mình. Và bây giờ muốn tạo một tập tin bằng cách sử dụng vi
.
Nhưng nó hiển thị cho tôi một lỗi:
bash: vi: command not found
image
bạn đang xây dựng từ. Hầu hết có lẽ image
bạn đang sử dụng nó nhẹ hơn nên nó chỉ có những thứ bạn cần để chạy dưới dạng hình ảnh. Bạn cần cài đặt thủ công các gói bạn cần.
Câu trả lời:
đăng nhập vào vùng chứa bằng lệnh sau:
docker exec -it <container> bash
Sau đó, chạy lệnh sau.
apt-get update
apt-get install vim
Hộp chứa của bạn có thể chưa cài đặt nó ra khỏi hộp.
Chạy apt-get install vim
trong thiết bị đầu cuối và bạn đã sẵn sàng để đi.
vim-tiny
(Ubuntu)
apt-get update
THENapt-get install vim
Lệnh chạy tùy thuộc vào hình ảnh cơ sở bạn đang sử dụng.
Đối với Alpine, vi
được cài đặt như một phần của hệ điều hành cơ sở. Cài đặt vim
sẽ là:
apk -U add vim
Đối với Debian và Ubuntu:
apt-get update && apt-get install -y vim
Đối với CentOS, vi
thường được cài đặt với hệ điều hành cơ sở. Đối với vim
:
yum install -y vim
Điều này chỉ nên được thực hiện trong giai đoạn đầu phát triển. Khi bạn nhận được vùng chứa đang hoạt động, các thay đổi đối với tệp sẽ được thực hiện đối với hình ảnh hoặc cấu hình được lưu trữ bên ngoài vùng chứa của bạn. Cập nhật tệp Dockerfile của bạn và các tệp khác mà tệp này sử dụng để tạo hình ảnh mới. Điều này chắc chắn không nên được thực hiện trong quá trình sản xuất vì những thay đổi bên trong thùng chứa là do thiết kế tạm thời và sẽ bị mất khi thùng được thay thế.
USER root
bên trong Dockerfile thực hiện điều này, nhưng hãy đảm bảo chuyển trở lại người dùng khác của bạn. Tôi là một container đang chạy:docker exec -u root ...
DÙNG CÁI NÀY:
apt-get update && apt-get install -y vim
Giải thích lệnh trên
Ngoài ra, giữ cho hình ảnh docker của bạn nhỏ bằng cách không cài đặt các trình chỉnh sửa không cần thiết. Bạn có thể chỉnh sửa các tệp qua ssh từ máy chủ docker đến vùng chứa:
vim scp://remoteuser@container-ip//path/to/document
Sử dụng lệnh dưới đây trong vùng chứa dựa trên Debian:
apt-get install vim-tiny
Toàn bộ hướng dẫn sử dụng trong Dockerfile:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
Nó không cài đặt các gói không cần thiết và xóa các tệp tải xuống không cần thiết, vì vậy kích thước hình ảnh docker của bạn sẽ không tăng đáng kể.
Để cài đặt trong vùng chứa Docker của bạn, bạn có thể chạy lệnh
docker thực thi apt-get update && apt-get install -y vim
Nhưng điều này sẽ bị giới hạn ở vùng chứa mà vim được cài đặt. Để làm cho nó có sẵn cho tất cả các vùng chứa, hãy chỉnh sửa Dockerfile và thêm
CHẠY bản cập nhật apt-get && apt-get install -y vim
hoặc bạn cũng có thể mở rộng hình ảnh trong Dockerfile mới và thêm lệnh trên. Ví dụ.
TỪ <tên hình ảnh>
CHẠY bản cập nhật apt-get && apt-get install -y vim
Vùng chứa bên trong (trong docker, không phải trong VM), theo mặc định, chúng không được cài đặt. Ngay cả apt-get , wget sẽ không hoạt động. Máy ảo của tôi đang chạy trên Ubuntu 17.10. Đối với tôi, quản lý gói yum đã hoạt động.
Yum không phải là một phần của debian hoặc ubuntu. Nó là một phần của mũ đỏ. Tuy nhiên, nó hoạt động trong Ubuntu và nó được cài đặt theo mặc định như apt-get
Tu cài vim, sử dụng lệnh này
yum install -y vim-enhanced
Để gỡ cài đặt vim:
yum uninstall -y vim-enhanced
Tương tự,
yum install -y wget
yum install -y sudo
-y là giả sử có nếu được nhắc cho bất kỳ q Kiệt độ nào được hỏi sau khi thực hiện yum install tên gói
Nếu bạn thực sự muốn một trình soạn thảo nhỏ để dọn dẹp nhà đơn giản trong một docker, hãy sử dụng nó trong Dockerfile của bạn:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
Tôi đã sử dụng nó trên một docker dựa trên Ubuntu 18. (Tất nhiên bạn có thể cần một RUN apt-get update
tệp trước nhưng nếu bạn đang tạo tệp Docker của riêng mình, bạn có thể đã có tệp đó.)
Nếu bạn cần thay đổi một tập tin chỉ một lần. Bạn nên thực hiện thay đổi cục bộ và xây dựng hình ảnh docker mới với tệp này.
Giả sử trong hình ảnh docker, bạn cần thay đổi một tệp có tên myFile.xml theo / path / to / docker / image /. Vì vậy, bạn cần phải làm.
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
Sau đó, xây dựng hình ảnh docker của riêng bạn với docker build -t docker-repo:v-x.x.x .
Sau đó, sử dụng hình ảnh docker mới xây dựng của bạn.