docker理解
- 2022 年 9 月 19 日
- 筆記
Docker 包括三個基本概念:
- 鏡像(Image):Docker 鏡像(Image),就相當於是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。
- 容器(Container):鏡像(Image)和容器(Container)的關係,就像是面向對象程式設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。
- 倉庫(Repository):倉庫可看成一個程式碼控制中心,用來保存鏡像。
Docker 使用客戶端-伺服器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。
一、docker容器命令
1.Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器里執行 bin/echo “Hello world”,然後輸出結果。
1 runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world" 2 Hello world
2.運行互動式的容器
1 runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash 2 root@0123ce188bd8:/#
-
-t: 在新容器內指定一個偽終端或終端。
-
-i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
3.啟動容器
1 runoob@runoob:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 2 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63 #顯示內容為容器ID
4.後台運行docker
1 runoob@runoob:~$ docker run -itd --name ubuntu-test ubuntu /bin/bash
加了 -d 參數默認不會進入容器,想要進入容器需要使用指令 docker exec,退出容器終端,但不會導致容器的停止
1 runoob@runoob:~$ docker exec -it 243c32535da7 /bin/bash
2 root@0123ce188bd8:/#
5.查看容器運行狀態
1 runoob@runoob:~$ docker ps
2 CONTAINER ID #容器ID IMAGE #鏡像 COMMAND #啟動容器時運行的命令 CREATED STATUS PORTS #容器的埠資訊和使用的連接類型(tcp\udp) NAMES #容器名稱
3 2b1b7a428627 training/webapp "/bin/sh -c 'while true...'" 37 seconds ago Up 36 seconds 0.0.0.0:1025->5000/tcp ecstatic_ritchie
docker ps -a : 查看所有容器
七種STATUS容器狀態:
- created(已創建)
- restarting(重啟中)
- running 或 Up(運行中)
- removing(遷移中)
- paused(暫停)
- exited(停止)
- dead(死亡)
6.查看容器內的標準輸出
1 runoob@runoob:~$ docker logs 2b1b7a428627 #容器ID或者容器名稱 2 hello world
7.停止容器
1 runoob@runoob:~$ docker stop 2b1b7a428627 #容器ID或者容器名稱
8.重啟容器
1 runoob@runoob:~$ docker restart 2b1b7a428627 #容器ID或者容器名稱
9.退出容器:通過運行 exit 命令或者使用 CTRL+D
10.刪除容器
1 runoob@runoob:~$ docker rm -f 2b1b7a428627
二、docker鏡像命令
1.獲取鏡像
1 runoob@runoob:~$ docker pull ubuntu:13.10
2.列出鏡像列表
1 runoob@runoob:~$ docker images 2 REPOSITORY#鏡像倉庫源 TAG IMAGE ID CREATED SIZE 3 ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB 4 php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
3.刪除鏡像
1 runoob@runoob:~$ docker rmi 「水月傳奇」 #刪除鏡像水月傳奇