Docker 容器和鏡像操做,記錄下來!💻🐸html
$ docker run -dit --name ubuntu ubuntu
複製代碼
docker exec
命令$ docker exec -it ubuntu bash
複製代碼
注意:使用
exit
命令退出在容器內執行命令。linux
& docker inspect ubuntu
複製代碼
包括容器的ID、容器名、環境變量、運行命令、主機配置、網絡配置等。nginx
使用 -f
參數能夠查看用戶關心的數據:docker
查看容器運行狀態:docker inspect -f='{{.State.Running}}' ubuntu
shell
查看容器ip地址:docker inspect -f='{{.NetworkSettings.IPAddress}}' ubuntu
ubuntu
查看容器名、容器id:docker inspect -f='{{.Name}} {{.ID}}' ubuntu
數組
$ docker top ubuntu
複製代碼
export
命令能夠導出容器$ docker export nginx > ./docker/nginx.tar
複製代碼
該命令將nginx容器導入到docker目錄下。bash
import
命令導入容器$ cat nginx.tar | docker import - importednginx:ilatest
複製代碼
docker run
再去下載會比較慢,能夠先執行docker pull
將鏡像先下載下來,再運行。$ docker pull hub.c.163.com/library/nginx:latest
複製代碼
$ docker run -itd --name 163nginx -p 80:80 hub.c.163.com/library/nginx:latest
複製代碼
docker rmi
$ docker rmi 鏡像ID/鏡像名
複製代碼
有的時候,沒法刪除一個鏡像,大部分緣由是由於該鏡像被一個容器所依賴,此時須要先刪除容器,而後就能夠刪除鏡像了。微信
commit
命令$ docker commit -m "update index.html" --author='leeyunt' 13af96130e40 leeyunt/nginx:v1
複製代碼
命令解釋:網絡
- 參數
-m
是對建立的該鏡像的一個簡單描述。--author
表示該鏡像的做者。13af96130e40
表示建立鏡像所依據的容器的id
。leeyunt/nginx
則表示倉庫名,leeyunt
是名稱空間,nginx
是鏡像名。v1
表示倉庫的tag。- 建立完成後,經過
docker images
命令就能夠查看到剛剛建立的鏡像。- 經過剛剛建立的鏡像運行一個容器,訪問該容器,發現nginx默認的首頁已經發生改變。
FROM nginx
MAINTAINER leeyunt "leeyunt@outlook.com"
RUN echo 'hello docker!'>/usr/share/nginx/html/index.html
COPY ./hello.html /usr/share/nginx/html/
複製代碼
解釋:
- FROM nginx表示該鏡像的構建,以已有的nginx鏡像爲基礎,在該鏡像的基礎上構建。
- MAINTAINER指令用來聲明建立鏡像的做者信息以及郵箱信息,這個命令不是必須的。
- RUN指令用來修改鏡像,算是使用比較頻繁的一個指令了,該指令能夠用來安裝程序、安裝庫以及配置應用程序等,一個RUN指令執行會在當前鏡像的基礎上建立一個新的鏡像層,接下來的指令將在這個新的鏡像層上執行,RUN語句有兩種不一樣的形式:shell格式和exec格式。本案例採用的shell格式,shell 格式就像linux命令同樣,exec格式則是一個JSON數組,將命令放到數組中便可。在使用RUN命令時,適當的時候能夠將多個RUN命令合併成一個,這樣能夠避免在建立鏡像時建立過多的層。
- COPY語句則是將鏡像上下文中的hello.html文件拷貝到鏡像中。
$ docker build -t leeyunt/nginx:v1 .
複製代碼
命令解釋:
-t
參數用來指定鏡像的命名空間,倉庫名以及TAG等信息。- 最後面的
.
是指鏡像構建上下文。
docker push
命令$ docker push leeyunt/nginx:v1
複製代碼
上傳成功後,用戶登陸 Docker Hub,就能夠看到剛剛的鏡像已經上傳成功了。
下期學習Docker高級用法。 🐔🐧🐦🐤
歡迎關注我的微信公衆號:桃李報春 我的博客:leeyunt.top