在Docker容器內執行 vi 編輯器 | Baeldung
在本教程中,我們將學習如何在Docker容器中使用vi命令。要完全理解本教程,需要對 Linux 和 Docker 有基本的瞭解。我們將研究四種型別的 Linux 發行版,即 Ubuntu、Debian、CentOS 和 Fedora。
Docker 是一個容器化平臺,允許將我們的應用程式及其依賴項打包到一個單元中。
作為最佳實踐,我們應該保持 Docker 映象的大小較小。因此,我們只在 Docker 容器中安裝那些執行我們的應用程式所必需的包。
Ubuntu/Debian
Ubuntu 和 Debian 的官方 Docker 映象不包含vim包。現在,讓我們在容器內手動安裝vim包:
$ docker exec -it ubuntu bash -c "apt-get update && apt-get install -y vim" |
在這裡,首先,我們使用命令apt-get update 更新包,然後使用命令apt-get install -y vim安裝vim包:
$ docker exec -it ubuntu bash -c "apt list --installed | grep vim" WARNING: apt does not have a stable CLI interface. Use with caution in scripts. vim-common/focal,now 2:8.1.2269-1ubuntu5 all [installed,automatic] vim-runtime/focal,now 2:8.1.2269-1ubuntu5 all [installed,automatic] vim/focal,now 2:8.1.2269-1ubuntu5 amd64 [installed] |
所有這些命令也適用於 Debian Docker 容器。
CentOS/Fedora
CentOS 和 Fedora 的官方 Docker 映像包括vim 包的最小安裝, 它能夠執行所有基本的檔案編輯操作。
現在讓我們使用最新的 Docker 映象啟動一個 centos Docker 容器。同樣,我們將使用命令rpm -qa |驗證容器內的vim包是否可用。
$ docker run -itd --name centos centos:latest 0a6b12547c61ce6859f48f56180d758692bf481dd854412f29c94f0cb1a3d0ca $ docker exec -it centos bash -c "rpm -qa | grep vim" vim-minimal-8.0.1763-15.el8.x86_64 |
如果需要,我們可以安裝完整的vim包:
$ docker exec -it centos bash -c "yum update -y && yum install -y vim" |
更新命令將更新包到他們的最新版本。最後,我們將使用yum install -y vim安裝vim包。這兩個命令都將在 Docker 容器內執行。
同樣,讓我們驗證安裝在容器內的所有vim包:
$ docker exec -it centos bash -c "rpm -qa | grep vim" vim-filesystem-8.0.1763-15.el8.noarch vim-minimal-8.0.1763-15.el8.x86_64 vim-common-8.0.1763-15.el8.x86_64 vim-enhanced-8.0.1763-15.el8.x86_64 |
本節中討論的所有命令也適用於 Fedora Docker 容器。
使用vi編輯器建立或編輯檔案
現在我們已經在 Docker 容器中安裝了vim包,我們可以使用vi命令來建立和編輯檔案:
$ docker exec -it centos bash $ vi /baeldung.txt |
在這裡,我們在 Docker 容器中啟動一個互動式 Bash shell,然後在/目錄中建立baeldung.txt檔案。如果baeldung.txt檔案已經存在,它將在vi編輯器中開啟該檔案。
在這個例子中,我們應該注意到控制將保留在 Docker 容器內。在此之後執行的任何操作都將在 Docker 容器內執行。
讓我們看看使用單個命令執行相同操作的另一種方法:
$ docker exec -it centos bash -c "vi /baeldung.txt"
這一次,控制權將保留在主機上。在此之後執行的任何操作都將在主機上執行。
應該避免在 Docker 映象中使用像vim這樣用於編輯檔案的包。
即使出於任何原因,我們想要編輯 Docker 容器內的任何檔案,我們也應該使用Docker 卷。
使用 Docker 卷,我們可以將原始碼目錄掛載到主機上的特定目錄。這樣,主機上存在的檔案內所做的任何更改都將反映 Docker 容器內的更改。
或者使用nano/vim-tiny:該VIM包需要大約50 MB用於安裝的磁碟空間。作為替代方案,我們還可以使用nano或vim-tiny(僅在 Ubuntu 中可用)之類的軟體包進行檔案編輯。這些軟體包只需要幾 KB 的磁碟空間。因此,我們的 Docker 映象大小會很小。
相關文章
- AIX VI編輯器AI
- 12 vi編輯器
- VI編輯器基本教程
- vi編輯器相關命令
- Linux 退出Vi編輯器Linux
- Vi/Ex編輯器教程[4]
- Vi/Ex編輯器教程[3]
- Vi/Ex編輯器教程[2]
- Vi/Ex編輯器教程[1]
- Docker命令-docker exec-在執行的容器中執行命令Docker
- Unix vi編輯器命令總結
- Docker中Mysql容器內如何執行SQL檔案?DockerMySql
- linux命令之vi文字編輯器Linux
- 使用 Vi/Vim 編輯器:基礎篇
- linux中vi編輯器的使用Linux
- linux下vi編輯器命令大全Linux
- vi編輯命令(轉)
- 在Docker中,如何停止所有正在執行的容器?Docker
- Youki:用 Rust 編寫的更快Docker容器執行時RustDocker
- 使用Systemd執行Docker容器Docker
- 使用docker執行CentOS容器DockerCentOS
- Linux– 檔案編輯器 vi/vim(1)Linux
- Linux下的編輯器――vi大全(轉)Linux
- docker學習2|在容器中部署nginx並儲存、執行容器DockerNginx
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- vi和vim的編輯模式模式
- vi文字編輯新手指南
- Linux VI編輯命令使用Linux
- 實現一個簡單的在瀏覽器執行Dotnet編輯器瀏覽器
- Linux-vi編輯器開發必備操作Linux
- linux vi編輯器中 快捷鍵上下翻頁Linux
- 如何安裝和使用純文字編輯器 vi/vim
- VI編輯器常用命令-不可不知
- Linux下字元介面文字編輯器 vi(轉)Linux字元
- 好程式設計師分享Linux重器vi編輯器程式設計師Linux
- 如何讓sublime編輯器執行python程式?Python
- 在OpenShift中執行容器
- 在 Docker 裡執行 Microsoft SQL 伺服器DockerROSSQL伺服器