繼 CentOS 6.5 安裝 Docker 後,本文實戰示範 Docker 容器核心操作:拉取 Ubuntu 映像、啟動互動容器、檢視網路/進程、安裝軟體、提交新映像,建立容器化操作基礎認知。
[root@localhost ~]# docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
...下載層級...
Status: Downloaded newer image for ubuntu:latest
root@8c342c0c275c:/#
-i:保持 STDIN 開啟 (互動模式)-t:分配偽 TTY 終端機ubuntu:映像名稱 (預設 latest tag)/bin/bash:容器啟動指令8c342c0c275c:容器 ID (主機名同步)# 主機名 = 容器 ID
root@8c342c0c275c:/# hostname
8c342c0c275c
# /etc/hosts 自動加入容器 IP 對應
root@8c342c0c275c:/# cat /etc/hosts
172.17.0.2 8c342c0c275c
...
# 網路介面與 IP
root@8c342c0c275c:/# ip a
eth0: inet 172.17.0.2/16 scope global eth0
# Docker 預設 bridge 網路:172.17.0.0/16
# 運行進程
root@8c342c0c275c:/# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 18168 1976 ? Ss 09:38 0:00 /bin/bash
root 19 0.0 0.0 15568 1144 ? R+ 09:55 0:00 ps aux
root@8c342c0c275c:/# apt-get update && apt-get install -y vim
# 下載套件索引、解析依賴、安裝 vim 及相依套件
# 修改僅影響此容器層,不影響宿主機或其他容器
| 操作 | 指令 | 說明 |
|---|---|---|
| 列出運行中容器 | docker ps | |
| 列出所有容器 | docker ps -a | 包含已停止 |
| 停止容器 | docker stop <CONTAINER_ID> | 發送 SIGTERM,10秒後 SIGKILL |
| 啟動已停止容器 | docker start <CONTAINER_ID> | 保留原有檔案系統變更 |
| 重啟容器 | docker restart <CONTAINER_ID> | |
| 進入運行中容器 | docker attach <CONTAINER_ID> | 連接主進程 STDIN/STDOUT |
| 在運行容器執行指令 | docker exec -it <ID> /bin/bash | 推薦方式,開新進程 |
| 刪除容器 | docker rm <CONTAINER_ID> | 需先停止 |
| 刪除所有停止容器 | docker rm $(docker ps -a -q) | 批次清理 |
| 查看日誌 | docker logs <CONTAINER_ID> | |
| 檢視底層資訊 | docker inspect <CONTAINER_ID> | JSON 格式完整中繼資料 |