一、術語
1.容器
很多用戶在接觸Docker 之初都會認為容器就是一種輕量級的虛擬機,但實際上,容器和虛擬機有非常大的區別。從根本形態上來看,容器其實就是運行在操作系統上的一個進程,只不過加入了對資源的隔離和限制。
2.鏡像
容器是一個動態的概念,而鏡像是一個相對靜止的概念。簡單來說,鏡像就是容器中的文件系統。鏡像就是由Layered FS 組成的,並且它是只讀的。當容器運行時,會在鏡像之上再加上一層可讀可寫層。
3.容器和鏡像的關系
容器和鏡像是密切相關的,二者缺一不可,也是可以相互進行轉換的。通過docker run 即可啟動一個容器運行。當需要將容器轉化為鏡像時,可以通過docker commit 進行轉化。
4.安裝docker
https://www.docker.com/community-edition
二、拉取遠程鏡像 centos:latest
docker pull centos:latest
該命令會去遠程鏡像庫拉取,拉取成功后使用命令查看
docker images
三、創建容器
docker run --name centosCon1 -i -t -p 5001:22 centos:latest /bin/bash
docker run 參數詳解:
1. --name --表示容器名稱
2. -i -- 以交互模式運行容器,通常與 -t 同時使用
3. -t -- 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
4. -p -- 指定容器暴露的端口
5. 5001:22 -- 表示將宿主機5001端口映射到容器中暴露的22端口
6. centos:latest -- docker images 列表中的 REPOSITORY:TAG
7. /bin/bash --表示使用bash
四、配置sshd
yum -y install openssh-server
若有遇到問題,請查看docker centos:last 開啟sshd 遇到的證書問題
五、修改root密碼 [如果未使用--privileged,這里的root只是普通用戶]
passwd root
六、提交當前容器為新的鏡像或覆蓋原鏡像
1.退出當前容器
exit
2. 查到被我們修改的容器ID
docker ps -a
3.提交當前容器為新的鏡像或覆蓋原鏡像
docker commit {容器ID} {鏡像名稱}
說明:
1.{鏡像名稱}既可以為新的名稱也可以直接覆蓋原始鏡像
2.docker run 會根據鏡像創建一個容器,如果沒有手動執行 docker rm {容器ID},該容器將會一直存在,你可以啟動、停止、登錄容器;命令如下:
2.1 啟動:docker start {容器名稱}
2.2 停止:docker stop {容器名稱}
2.3 強制停止:docker kill {容器ID}
2.4 登錄容器:docker attach {容器名稱} --容器必須啟動; 一個容器支持多個attach,這將會出現屏幕共享效果
3.使用docker commit后,我們剛才配置的帶有sshd的容器將生成新鏡像或覆蓋原始鏡像,我們又可以基於它來創建新的容器
七、使用Xshell+WinSCP連接容器
host:127.0.0.1
port:5001
User:root
pwd:******