在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 映象大小會很小。
相關文章
- 12 vi編輯器
- vi/vim編輯器
- linux命令之vi文字編輯器Linux
- Docker命令-docker exec-在執行的容器中執行命令Docker
- Linux– 檔案編輯器 vi/vim(1)Linux
- 使用 Vi/Vim 編輯器:基礎篇
- Docker中Mysql容器內如何執行SQL檔案?DockerMySql
- linux vi編輯器中 快捷鍵上下翻頁Linux
- Linux-vi編輯器開發必備操作Linux
- Youki:用 Rust 編寫的更快Docker容器執行時RustDocker
- 在Docker中,如何停止所有正在執行的容器?Docker
- 好程式設計師分享Linux重器vi編輯器程式設計師Linux
- 使用docker執行CentOS容器DockerCentOS
- vi和vim的編輯模式模式
- 如何安裝和使用純文字編輯器 vi/vim
- Linux系統下都vi文字編輯器如何使用?Linux
- 實現一個簡單的在瀏覽器執行Dotnet編輯器瀏覽器
- 在Docker容器中使用Hadoop執行Python MapReduce作業DockerHadoopPython
- 如何讓sublime編輯器執行python程式?Python
- CentOS7 vi編輯命令【轉】CentOS
- 在Docker容器中執行ASP.NET MVC應用程式DockerASP.NETMVC
- 在 Docker 裡執行 Microsoft SQL 伺服器DockerROSSQL伺服器
- Linux Vi編輯器的三種模式分別指什麼?Linux模式
- 雲端計算開發入門課程:Linux重器 vi編輯器Linux
- 快速上手Linux核心命令(六):Linux的文字編輯器vi和vimLinux
- 利用 trap 在 docker 容器優雅關閉前執行環境清理Docker
- element-ui table 行內編輯UI
- Docker入門系列之一:在一個Docker容器裡執行指定的web應用DockerWeb
- Git清空VIM編輯器內容Git
- Docker 容器編排利器 Docker ComposeDocker
- Linux的VI (連線行,查詢和替換,多檔案編輯)Linux
- 最簡單的docker教程:在docker裡執行nginx伺服器DockerNginx伺服器
- Docker批量容器編排Docker
- 在Spring Batch中配置重試邏輯 - BaeldungSpringBAT
- 在Docker容器中執行GUI圖形應用的開源專案DockerGUI
- Docker容器中執行.net framework控制檯程式DockerFramework
- Docker容器中執行.Net Core應用程式Docker
- 把執行在 Docker 容器內的 Microsoft SQL 伺服器部署到 SAP Kyma 中DockerROSSQL伺服器