您好,登錄后才能下訂單哦!
archlinux中的第一個容器該怎么創建,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
sudo docker run -i -t base/archlinux /bin/bash #如果需要使用ubuntu鏡像 sudo docker run -i -t ubuntu /bin/bash #如果需要使用centOS鏡像 sudo docker run -i -t centos /bin/bash #如果需要使用centOS7鏡像 sudo docker pull openshift/base-centos7 /bin/bash
不過有可能出現如下異常,出現該異常可以試著更換一下源,或者試一下通過docker pull來先把鏡像拉取到本地。
若無異常,則進入我們的第一個容器
命令中的-i保證容器中STDIN開啟,-t標志則是讓docker為創建容器分配一個偽tty終端。這兩個參數是創建交互式容器最基本的參數。如若沒有這兩個參數,創建的是一個運行于后臺的容器。
命令中的/bin/bash則是告訴docker成功過創建一個新的容器后,啟動一個bash shell。
其中的archlinux、centos等Linux發行版字樣則是告知docker基于什么鏡像來創建容器。其他鏡像可以到docker下載你需要的鏡像,如下圖,找到你需要的鏡像,右側的Docker Pull Command欄會跟你說對應的鏡像拉取命令。
可以通過先拉取鏡像到本地,執行上面的docker run命令如果檢測到本地的鏡像,docker則不再到Docker Hub Registry查看是否有對應的鏡像,如果本地無對應的鏡像,則到Docker Hub Registry中查看,如果查找到,則下載到本地:
#拉取archlinux鏡像 sudo docker pull base/archlinux
在使用容器之前我們先來熟悉幾個常用的命令。
#查看目前有幾個容器,多少個暫停,多少個停止,多少個正在運行 [bysu@subaoya ~]$ sudo docker info #######下面就是運行后的一部分結果############ Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 1 ######################################## [bysu@subaoya ~]$ sudo docker ps #查看正在運行的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS d092d144e887 base/archlinux "/bin/bash" 35 minutes ago Up 12 minutes PORTS NAMES sad_rosalind [bysu@subaoya ~]$ sudo docker ps -a #查看所有狀態的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2552cacc1928 base/archlinux "/bin/bash" 33 seconds Exite d26 seconds ecstatic_galileo d092d144e887 base/archlinux "/bin/bash" 35 minutes ago Up 12 minutes sad_rosalind [bysu@subaoya ~]$ sudo docker ps -a|grep Up|awk '{print $1}' #查看正在運行的容器名 d092d144e887 #查看所有容器的名字 sudo docker ps -a -q #######下面就是運行結果############ bfacc5ccb74d a56a719eb52a 0fc9b2bc3e84 #刪除不在運行的所有容器 sudo docker rm $(sudo docker ps -a -q) #######下面就是運行結果############ bfacc5ccb74d 0fc9b2bc3e84 Error response from daemon: You cannot remove a running container a56a719eb52ae8bb3ecbe22bc1b029f203206b0f7144e74992038bb76c56b6ea. Stop the container before attempting removal or force remove #停止一個正在運行的容器 sudo docker stop a56a719eb52a #######下面就是運行結果############ a56a719eb52a
通過前面的方式創建容器時,可以給容器命名。如果創建時不指定名字,則會隨機生成容器名字。
sudo docker run --name my_first_container -i -t base/archlinux /bin/bash
一般地,上述創建容器成功,也直接進入容器,我第一時間想到的是exit(不知道有沒其他命令切出容器,如果需要用到的,自行搜索引擎),如此這般之后,就有可能出現剛剛切出的容器已經停止運行。這會導致你后續如果想通過docker exec -it my_first_container bash 或者sudo docker attach my_first_container再次進入容器 my_first_container,會出現異常,需要先通過命令sudo docker start my_first_container,重新啟動該容器。以上命令中容器名可以用容器ID替換。
查看主機名
hostname
查看網絡接口
ifconfig
ifconfig命令不存在的問題,參考
安裝其他軟件跟archlinux中是一樣的。
守護式容器可以長期運行,沒有交互式會話,一般用于作為運行應用程序和服務的載體。其創建命令如下:
sudo docker run --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 1;done"
上述命令中,-d參數告知docker將容器放后臺運行。
由于上面創建的容器放在后臺,我們作為容器的“創世者”,它是死是活我們多少總有點關心的。
sudo docker ps -a
通過status字段,得知它還活著。竟然得知還活著,那自然而然又想知道ta過得好不好——有沒在正常工作了。可以通過查看日志,得知ta的近況如何。
sudo docker logs my_daemon
實時查看日志可以使用下列命令。
sudo docker logs -f my_daemon #實時查看最新日志 sudo docker logs --tail 0 -f my_daemon #實時查看最新日志,加上-t標志為每條日志項加上時間戳,方便調試 sudo docker logs --tail 0 -ft my_daemon
退出請Ctrl+c,用過Linux的應該都知道。
[bysu@subaoya ~]$ sudo docker attach my_daemon
hello docker
hello docker
....
上面標紅的代碼執行后,無法通過Ctrl+c退出容器。無奈的我只能把xshell給X掉重連。有知道怎么關掉的麻煩告知一下(也許是無法關閉)。
執行docker run命令時通過--log-driver選項來實現。如果通過該選項指定syslog,將容器的所有日志輸出重定向到syslog,則會同時禁用docker logs命令,具體命令如下:
sudo docker run --name my_log_daemon --log-driver="syslog">
如果要禁用容器所有的日志,則可用選項none,該選項同樣會禁用docker logs命令。
使用sudo docker top my_first_container可以查看容器內的進程
可以通過docker stats命令,動態查看多個容器的CPU,內存,網速,IO,這能快速監控一臺主機上的一組容器。
通過docker exec命令在容器內部額外啟動新進程。在容器內可以運行的進程有兩種類型:后臺任務和交互式任務。
容器中運行后臺任務
sudo docker exec -d my_first_container touch /etc/createFile
容器中運行交互命令
sudo docker exec -t -i my_first_container /bin/bash
如果容器在創建時就是交互式的,可以直接sudo docker attach命令附到原本的容器上,效果等同上面這條命令。
8.停止守護式容器
sudo docker stop 容器名/容器ID
可通過--restart標志讓docker自動重啟容器。--restart標志會檢查容器退出的代碼,并據此來決定是否要重啟容器。Docker默認不會重啟容器。
總是自動重啟容器的命令
sudo docker run --restart=always --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 60;done"
--restart標志被設置為always,無論容器退出的代碼是什么,Docker都會自動重啟該容器。
如果--restart標志被設置為on-failure,則只有容器退出的代碼為非0值時,才會自動重啟。同時還可以設置一個可選參數,標志重啟次數。
sudo docker run --restart=on-failure:5 --name my_daemon -d base/archlinux /bin/sh -c "while true;do echo hello docker;sleep 60;done"
當該容器退出代碼為非0時,Docker會嘗試最多5次的重啟。
10.深入容器
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。