docker重啟命令是什么?docker容器的啟動(dòng)有三種方式是哪些?
docker可以實(shí)現(xiàn)虛擬化的效果,它包括很多的部分,容器就是其中之一,而容器也是docker的一個(gè)重要的概念,容器是獨(dú)立運(yùn)行的一個(gè)或者是一組應(yīng)用,一個(gè)完整的docker是由多個(gè)部分組成的,分別是客戶端,鏡像和守護(hù)進(jìn)程,很多朋友對(duì)于docker的開啟,關(guān)閉和重啟命令不太了解,下面就給大家具體介紹下docker重啟命令是什么以及docker容器的啟動(dòng)有三種方式是哪些等問題,希望提供一些參考,幫助大家解答問題。
啟動(dòng)docker,命令:systemctl start docker。
驗(yàn)證docker是否啟動(dòng)成功,命令:dockers version。
重啟docker,命令:systemctl restart docker。
關(guān)閉docker,命令:systemctl stop docker。
注意事項(xiàng)
centos6和centos7操作有區(qū)別,這里是針對(duì)centos7使用。
docker如何重啟某個(gè)容器
docker容器的重啟策略是面向生產(chǎn)環(huán)境的一個(gè)啟動(dòng)策略,在開發(fā)過程中可以忽略該策略。Docker容器的重啟都是由Docker守護(hù)進(jìn)程完成的,因此與守護(hù)進(jìn)程息息相關(guān)。
Docker容器的重啟策略如下:
no,默認(rèn)策略,在容器退出時(shí)不重啟容器。
on-failure,在容器非正常退出時(shí)(退出狀態(tài)非0),才會(huì)重啟容器。
on-failure:3,在容器非正常退出時(shí)重啟容器,最多重啟3次。
always,在容器退出時(shí)總是重啟容器。
unless-stopped,在容器退出時(shí)總是重啟容器,但是不考慮在Docker守護(hù)進(jìn)程啟動(dòng)時(shí)就已經(jīng)停止了的容器。
查看docker 容器重啟策略
通過–restart選項(xiàng),可以設(shè)置容器的重啟策略,以決定在容器退出時(shí)Docker守護(hù)進(jìn)程是否重啟剛剛退出的容器。
–restart選項(xiàng)通常只用于detached模式的容器。
–restart選項(xiàng)不能與–rm選項(xiàng)同時(shí)使用。顯然,–restart選項(xiàng)適用于detached模式的容器,而–rm選項(xiàng)適用于foreground模式的容器。
在docker ps查看容器時(shí),對(duì)于使用了–restart選項(xiàng)的容器,其可能的狀態(tài)只有Up或Restarting兩種狀態(tài)。
docker容器的啟動(dòng)有三種方式
a.交互方式,基于鏡像新建容器并啟動(dòng)
例如我們可以啟動(dòng)一個(gè)容器,打印出當(dāng)前的日歷表。
[root@rocketmq-nameserver4 ~]# docker run my/python:v1 cal ##my/python:v1為鏡像名和標(biāo)簽。
我們還可以通過指定參數(shù),啟動(dòng)一個(gè)bash交互終端。
[root@rocketmq-nameserver4 ~]# docker run -it my/python:v1 /bin/bash
參數(shù)-t讓Docker分配一個(gè)偽終端并綁定在容器的標(biāo)準(zhǔn)輸入上,-i讓容器的標(biāo)準(zhǔn)輸入保持打開。
使用docker run命令來啟動(dòng)容器,docker在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:
1.檢查本地是否存在指定的鏡像,不存在則從公有倉庫下載。
2.使用鏡像創(chuàng)建并啟動(dòng)容器。
3.分配一個(gè)文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀可寫層。
4.從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口道容器中去。
5.從地址池分配一個(gè)ip地址給容器。
6.執(zhí)行用戶指定的應(yīng)用程序。
7.執(zhí)行完畢之后容器被終止。
b、短暫方式,直接將一個(gè)已經(jīng)終止的容器啟動(dòng)運(yùn)行起來。
可以使用docker start命令,直接將一個(gè)已經(jīng)終止的容器啟動(dòng)運(yùn)行起來。
[root@rocketmq-nameserver4 ~]# docker run my/python:v1 /bin/echo hello test
hello test
命令執(zhí)行完,控制臺(tái)會(huì)打印"hello test",container就終止了,不過并沒有消失,可以用"docker ps -n 5 "看一下最新前5個(gè)的container,第一個(gè)就是剛剛執(zhí)行過的container,可以再次執(zhí)行一遍:docker start container_id。
不過這次控制臺(tái)看不到”hello test”了,只能看到ID,用logs命令才能看得到:docker logs container_id。
可以看到兩個(gè)”hello test”了,因?yàn)檫@個(gè)container運(yùn)行了兩次。
c、daemon方式,守護(hù)態(tài)運(yùn)行
即讓軟件作為長(zhǎng)時(shí)間服務(wù)運(yùn)行,這就是SAAS??!
例如我們啟動(dòng)centos后臺(tái)容器,每隔一秒打印當(dāng)天的日歷。
$ docker run -d centos /bin/sh -c "while true;do echo hello docker;sleep 1;done"
啟動(dòng)之后,我們使用docker ps -n 5查看容器的信息。
要查看啟動(dòng)的centos容器中的輸出,可以使用如下方式:
$ docker logs $CONTAINER_ID ##在container外面查看它的輸出。
$ docker attach $CONTAINER_ID ##連接上容器實(shí)時(shí)查看。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科