成長之路:Docker(三)使用
阿新 • • 發佈:2020-12-12
Hello World
Docker允許在容器內執行應用程式。
docker run
:在容器內執行一個應用程式。
[[email protected] ~]# docker run ubuntu:15.10 /bin/echo "Hello world"
引數解析:
- docker:Docker的二進位制執行檔案。
- run:與docker組合來執行一個容器。
- ubuntu:15.10:指定要執行的映象,Docker首先從本地主機上查詢映象是否存在,如果不存在,Docker就會從映象倉庫Docker Hub下載公共映象。
- /bin/echo “Hello world”:在啟動的容器裡執行的命令。
以上命令的意思為:Docker以ubuntu:15.10映象建立一個新容器,在容器裡執行/bin/echo “Hello world”。
互動式容器
通過docker的引數-i,-t,讓docker的容器實現對話:
[[email protected] ~]# docker run -i -t ubuntu:15.10 /bin/bash
[email protected]:/#
引數解析:
- -t:在新容器內指定一個偽終端或終端。
- -i:允許你對容器內的標準輸入進行互動。
[email protected]:/#
,此時我們進入了一個ubuntu15.10系統的容器。
在容器中執行命令cat /proc/version
ls
分別檢視當前系統的版本資訊和當前目錄下的檔案列表。
[[email protected] ~]# docker run -i -t ubuntu:15.10 /bin/bash
[email protected]:/# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
[email protected]:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
可以通過執行exit命令或者使用CTRL+D來退出容器。
[email protected]:/# exit
exit
[[email protected] ~]#
啟動容器(後臺模式)
使用以下命令建立一個以程序方式執行的容器
[[email protected] ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0
b72f4ae245a90a9af586c52fea0213fb72a6cabe5bd197da8460117073bf87d0
這個長字串叫做容器ID,對每個容器來說都是唯一的,我們可以通過容器ID來檢視對應的容器發生了什麼。
首先,我們需要確認容器有在執行,可以通過docker ps
來檢視:
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b72f4ae245a9 ubuntu:15.10 "/bin/sh -c 'while t…" 3 minutes ago Up 3 minutes dreamy_babbage
詳情介紹:
CONTAINER ID: 容器ID。
IMAGE: 使用的映象。
COMMAND: 啟動容器時執行的命令。
CREATER: 容器的建立時間。
STATUS: 容器狀態。
狀體有7種:
- created:已建立
- restarting:重啟中
- running或up:執行中
- removing:遷移中
- paused:暫停
- exited:停止
- dead:死亡
PORTS: 容器的埠資訊和使用的連線型別(tcp\udp)。
NAMES: 自動分配的容器名稱。
在宿主主機內使用docker logs
命令,檢視容器內的標準輸出:
[[email protected] ~]# docker logs b72f4ae245a9
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
[[email protected] ~]# docker logs dreamy_babbage
hello world
hello world
hello world
hello world
hello world
hello world
hello world
停止容器
docker stop
:停止容器。
[[email protected] ~]# docker stop b72f4ae245a9
b72f4ae245a9
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
通過docker ps檢視,容器已停止。