1. 先docker拉取ubuntu鏡像
docker search ubuntu?? #搜索ubuntu? 鏡像
docker pull ubuntu:22.04 #拉取ubuntu? 鏡像
docker images ? #下載完成后,查看已經下載的鏡像
docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash? #
docker container -l
2.根據鏡像創建容器
docker run? --name my_container -dit my_image:tag /bin/bash
--name:加上此參數可指定生成容器的名稱,此參數位置在鏡像id前
my_container 指定的容器名字
-d:打開后臺運行
-i:打開控制臺交互(不設置此選項退出容器后docker會自動清理未活動的容器)
-t:支持終端登錄
my_image:tag 是要使用的鏡像名稱和標簽。不喜歡打這么多字的可以用id代替
/bin/bash 表示要在容器內啟動 Bash Shell進行交互
例如:
docker run --name ubuntu_container -dit ubuntu:22.04 /bin/bash? #
?
?
?首先,使用 docker ps
命令列出所有正在運行的容器,找到你想要進入的容器的名稱或ID。
?
然后,使用 docker exec
命令以交互模式進入該容器。例如,如果你的容器名稱是 my_container
,你可以使用以下命令啟動一個新的bash終端:
docker exec -it
container_name
bash
這里的 -it
選項表示以交互式終端模式運行。
其他方法
?使用 docker attach
命令?
docker attach
命令也可以用于進入容器,但它會將你的終端與容器的標準輸入、輸出和錯誤流連接起來。這意味著,當你在該終端中執行命令時,所有窗口都會同步顯示,且如果有一個窗口阻塞了,其他窗口也無法再進行操作。因此,docker attach
通常不推薦用于生產環境。
?使用 nsenter
命令?
nsenter
是一個可以訪問另一個進程名稱空間的工具。要使用 nsenter
進入容器,你需要先獲取容器的PID(進程ID),這可以通過 docker inspect
命令來實現。然后,你可以使用 nsenter
命令連接到該PID并進入容器。然而,這種方法相對復雜,且需要額外的安裝步驟,因此不如 docker exec
常用。
3.進入容器后,由于拉取的鏡像為基礎鏡像,因此需要增加很多工具進行下載
sudo apt update ? ? ? ? ? ? ? ? ? ? ? ? ? ? #老規矩先更新
sudo apt install iputils-ping??????? ? ? # ping工具
sudo apt install net-tools ? ? ? ? ? ? ? # 軟件包 其中包括ifconfig
sudo apt install vim ? ? ? ? ? ? ? ? ? ? ? # vim編輯器
sudo apt install openssh-client ? ? # ssh? 連接其他服務器ssh
sudo apt install openssh-server ? # 其他服務器連接本機ssh
sudo apt install vsftpd ? ? ? ? ? ? ? ?? # ftp
4.界面查看容器
docker ps? ? ? # 查看正在運行的容器
docker ps -a? #查看所有容器包括未運行的
?5.刪除容器
docker ps ?? #list the containers
docker stop da035bd84c7a?? #stop? the container use id
sudo docker rm da035bd84c7a? #delete the container use id
6.后續再次進入容器
docker exec -it 容器id或容器名稱 /bin/bash # 退出容器后不會關閉容器
7.退出容器
關閉當前的終端會話并停止容器 輸入 exit 并按 Enter
Ctrl + D 快捷鍵退出容器
?