ฉันได้ติดตั้งนักเทียบท่าบนเครื่องเสมือนโฮสต์ของฉันแล้ว และตอนนี้ต้องการสร้างไฟล์โดยใช้vi
.
แต่มันแสดงข้อผิดพลาด:
bash: vi: command not found
ฉันได้ติดตั้งนักเทียบท่าบนเครื่องเสมือนโฮสต์ของฉันแล้ว และตอนนี้ต้องการสร้างไฟล์โดยใช้vi
.
แต่มันแสดงข้อผิดพลาด:
bash: vi: command not found
image
คุณกำลังสร้างจากอะไร ส่วนใหญ่image
คุณใช้งานเบามากจนมี แต่สิ่งที่คุณต้องใช้เพื่อแสดงเป็นรูปภาพ คุณต้องติดตั้งแพ็คเกจที่คุณต้องการด้วยตนเอง
คำตอบ:
ล็อกอินเข้าสู่คอนเทนเนอร์ด้วยคำสั่งต่อไปนี้:
docker exec -it <container> bash
จากนั้นรันคำสั่งต่อไปนี้
apt-get update
apt-get install vim
คอนเทนเนอร์ของคุณอาจยังไม่ได้ติดตั้งออกจากกล่อง
วิ่งapt-get install vim
ในเทอร์มินัลและคุณควรพร้อมที่จะไป
vim-tiny
(Ubuntu)
apt-get update
แล้วapt-get install vim
คำสั่งในการรันขึ้นอยู่กับว่าคุณใช้อิมเมจพื้นฐานใด
สำหรับ Alpine vi
ถูกติดตั้งเป็นส่วนหนึ่งของ OS พื้นฐาน การติดตั้งvim
จะเป็น:
apk -U add vim
สำหรับ Debian และ Ubuntu:
apt-get update && apt-get install -y vim
สำหรับ CentOS vi
มักจะติดตั้งกับ OS พื้นฐาน สำหรับvim
:
yum install -y vim
สิ่งนี้ควรทำในการพัฒนาในช่วงต้นเท่านั้น เมื่อคุณได้รับคอนเทนเนอร์ที่ใช้งานได้แล้วควรทำการเปลี่ยนแปลงไฟล์กับรูปภาพของคุณหรือกำหนดค่าที่เก็บไว้นอกคอนเทนเนอร์ของคุณ อัปเดต Dockerfile และไฟล์อื่น ๆ ที่ใช้สร้างอิมเมจใหม่ สิ่งนี้ไม่ควรทำในการผลิตอย่างแน่นอนเนื่องจากการเปลี่ยนแปลงภายในคอนเทนเนอร์นั้นเกิดจากการออกแบบชั่วคราวและจะสูญหายไปเมื่อเปลี่ยนคอนเทนเนอร์
USER root
ภายใน Dockerfile ทำได้ แต่อย่าลืมเปลี่ยนกลับไปใช้ผู้ใช้รายอื่นของคุณ ฉันเป็นตู้คอนเทนเนอร์:docker exec -u root ...
ใช้สิ่งนี้:
apt-get update && apt-get install -y vim
คำอธิบายของคำสั่งดังกล่าว
เพิ่มบรรทัดต่อไปนี้ใน Dockerfile ของคุณจากนั้นสร้างอิมเมจนักเทียบท่าใหม่
RUN apt-get update && apt-get install -y vim
หรืออีกวิธีหนึ่งให้รูปภาพนักเทียบท่าของคุณมีขนาดเล็กโดยไม่ติดตั้งโปรแกรมแก้ไขที่ไม่จำเป็น คุณสามารถแก้ไขไฟล์ผ่าน ssh จากโฮสต์นักเทียบท่าไปยังคอนเทนเนอร์:
vim scp://remoteuser@container-ip//path/to/document
ใช้คำสั่งด้านล่างในคอนเทนเนอร์ที่ใช้ Debian:
apt-get install vim-tiny
คำแนะนำที่สมบูรณ์สำหรับการใช้งานใน Dockerfile:
RUN apt-get update && apt-get install --no-install-recommends -y \
vim-tiny \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
ไม่ได้ติดตั้งแพ็กเกจที่ไม่จำเป็นและลบไฟล์ที่ดาวน์โหลดโดยไม่จำเป็นดังนั้นขนาดอิมเมจนักเทียบท่าของคุณจะไม่เพิ่มขึ้นมาก
ในการติดตั้งภายในคอนเทนเนอร์ Docker ของคุณคุณสามารถเรียกใช้คำสั่ง
นักเทียบท่า exec apt-get update && apt-get install -y vim
แต่จะ จำกัด เฉพาะคอนเทนเนอร์ที่ติดตั้ง vim เพื่อให้พร้อมใช้งานกับคอนเทนเนอร์ทั้งหมดให้แก้ไข Dockerfile และเพิ่ม
RUN apt-get update && apt-get install -y vim
หรือคุณสามารถขยายภาพใน Dockerfile ใหม่และเพิ่มคำสั่งด้านบน เช่น.
จาก <ชื่อภาพ>
RUN apt-get update && apt-get install -y vim
ภายในคอนเทนเนอร์ (ใน Docker ไม่ใช่ใน VM) โดยค่าเริ่มต้นจะไม่ได้รับการติดตั้ง แม้apt-get , wgetจะไม่ทำงาน VM ของฉันกำลังทำงานบน Ubuntu 17.10 สำหรับฉันยำแพคเกจ manaager ทำงาน
Yum ไม่ได้เป็นส่วนหนึ่งของ debian หรือ ubuntu เป็นส่วนหนึ่งของหมวกสีแดง แต่มันใช้งานได้ใน Ubuntu และติดตั้งตามค่าเริ่มต้นเช่น apt-get
Tu ติดตั้งเป็นกลุ่มใช้คำสั่งนี้
yum install -y vim-enhanced
ในการถอนการติดตั้ง vim:
yum uninstall -y vim-enhanced
ในทำนองเดียวกัน
yum install -y wget
yum install -y sudo
-y คือสมมติว่าใช่หากได้รับแจ้งสำหรับ qustion ใด ๆ ที่ถามหลังจากทำyum install packagename
หากคุณต้องการตัวแก้ไขขนาดเล็กสำหรับการดูแลทำความสะอาดแบบง่ายในนักเทียบท่าให้ใช้สิ่งนี้ใน Dockerfile ของคุณ:
RUN apt-get install -y busybox && ln -s /bin/busybox /bin/vi
ฉันใช้มันกับนักเทียบท่าที่ใช้ Ubuntu 18 (แน่นอนว่าคุณอาจต้องมีRUN apt-get update
มาก่อน แต่ถ้าคุณกำลังสร้างไฟล์ Docker ของคุณเองคุณอาจมีไฟล์นั้นอยู่แล้ว)
หากคุณต้องการเปลี่ยนไฟล์เพียงครั้งเดียว คุณควรทำการเปลี่ยนแปลงภายในเครื่องและสร้างอิมเมจนักเทียบท่าใหม่ด้วยไฟล์นี้
พูดในภาพนักเทียบท่าคุณต้องเปลี่ยนไฟล์ชื่อ myFile.xml ภายใต้ / path / to / docker / image / ดังนั้นคุณต้องทำ
FROM docker-repo:tag
ADD myFile.xml /path/to/docker/image/
จากนั้นสร้างภาพนักเทียบท่าของคุณเองด้วย docker build -t docker-repo:v-x.x.x .
จากนั้นใช้อิมเมจนักเทียบท่าที่สร้างขึ้นใหม่