久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Docker

 1qxm19 2021-04-06

容器是Docker的又一核心概念

簡單的說,容器是獨立運行的一個或一組應(yīng)用,,以及他們的運行太環(huán)境,。對應(yīng)的,虛擬機可以理解為模擬運行的一整套操作系統(tǒng)和運行在上面的應(yīng)用,。接下來記錄一下如何管理一個容器,,包括創(chuàng)建、啟動和停止等

啟動容器

啟動容器有兩種方式,,一是基于鏡像創(chuàng)建一個容器并啟動,,二是將終止狀態(tài)的容器重新啟動。

1,、 新建并啟動:我們可以使用docker run命令新建一個容器并將其啟動

root@ubuntu:~# docker run ubuntu:16.04 /bin/echo 'Hello World'
Hello World

上面命令輸出了內(nèi)容之后,,立馬停止了容器,以至于我們根本不知道是否啟動了容器,。我們可以使用docker ps -a命令來查看所有的容器:

root@ubuntu:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
e3efbefb34cd        ubuntu:16.04        "/bin/echo 'Hello Wo…"   7 seconds ago       Exited (0) 5 seconds ago                       priceless_mcnulty

可以看到,,這就是我們剛剛創(chuàng)建并啟動的容器!我們還可以使用如下命令啟動一個Bash終端,,允許用戶與之交互:

root@ubuntu:~# docker run -it ubuntu:16.04 /bin/bash
root@d52e9924901b:/# date
Sun Jul  1 00:43:09 CST 2018

如此,我們就可以在其上面進行一連串的命令輸入操作了

使用docker run來創(chuàng)建容器時,,Docker在后臺的操作包括:

  • 檢查本地是否存在指定的鏡像,,不存在就從公有倉庫中下載
  • 利用鏡像創(chuàng)建并啟動一個容器
  • 分配一個文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀寫層
  • 從宿主主機的網(wǎng)橋接口中橋接一個虛擬接口到容器中去
  • 從地址池分配一個IP給容器
  • 執(zhí)行用戶指定的應(yīng)用程序
  • 執(zhí)行完畢后容器被終止

2、 啟動已終止容器:可以使用docker container start命令,,將一個已經(jīng)停止的容器重新啟動運行

首先我們使用docker ps -a來獲取當前宿主機上存在的容器:

root@ubuntu:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
a148c6fec026        ubuntu:16.04        "bash"              3 minutes ago       Exited (0) 10 seconds ago                       goofy_swanson

然后,,我們獲取到容器的ID,將其傳入到docker container start命令中,,將此容器啟動起來:

root@ubuntu:~# docker container start d52e9924901b

此時,,我們輸入docker ps命令,發(fā)現(xiàn)此容器是已啟動狀態(tài)的:

root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a148c6fec026        ubuntu:16.04        "bash"              4 minutes ago       Up 2 seconds                            goofy_swanson

但是,,這僅僅只是將其啟動起來了,,如果我們還需要進入交互式終端,我們可以使用docker exec命令,,并指定一個Bash,,如下:

root@ubuntu:~# docker exec -it a148c6fec026 /bin/bash
root@a148c6fec026:/# 

值得注意的是,docker ps只會列出正在運行的容器,,而docker ps -a會列出所有的容器,,包括正在運行的和已經(jīng)停止的容器

后臺運行容器

更多的時候,需要讓Docker在后臺運行,,而不是把當前執(zhí)行的命令的結(jié)果直接輸出在當前宿主機下,,此時我們可以使用docker run命令,并添加-d參數(shù)來實現(xiàn):

root@ubuntu:~# docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello docker; sleep 1; done"
59a9f0e30fda31c1799f622da6d56d0723c2bab5313f01f50e855fdbea21f00d

此時,,容器會在后臺運行,,不會把輸出的結(jié)果打印到宿主機上面。使用-d參數(shù)運行容器之后,,會返回一個容器的ID的給我們,,我們可以通過docker container ls來查看容器的信息:

root@ubuntu:~# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
59a9f0e30fda        ubuntu:16.04        "/bin/sh -c 'while t…"   2 minutes ago       Up 2 minutes                            inspiring_elion

如果想要知道后臺運行的容器所執(zhí)行的命令輸出的內(nèi)容,我們可以使用docker container logs命令來查看,。比如,,我們想查看剛剛那個容器所輸出的內(nèi)容,我們在命令后面加上容器的ID即可,,如下:

root@ubuntu:~# docker container logs 59a9f0e30fda
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
...

終止容器

我們可以使用docker container stop命令來停止一個容器,。例如我們將剛剛那個容器停止,傳入它的容器ID即可,,如下:

root@ubuntu:~# docker container stop 59a9f0e30fda

值得注意的是,,docker container ls只列出正在運行的容器,我們?nèi)绻枰榭匆呀?jīng)停止的容器,,只需要在結(jié)尾添加-a參數(shù)即可,。如此并可列出當前宿主機存在的所有容器,包括正在運行與已經(jīng)停止的容器,,如下:

root@ubuntu:~# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
59a9f0e30fda        ubuntu:16.04        "/bin/sh -c 'while t…"   31 minutes ago      Exited (137) 2 minutes ago                       inspiring_elion

在上面已經(jīng)提到,,對于已經(jīng)停止的容器,,我們可以使用docker container start命令來重新啟動它!??!另外,我們還需知道另外一個命令:docker container restart重啟容器的命令,,命令會將一個運行態(tài)的容器停止,,然后重新啟動它!

進入容器

在使用-d參數(shù)時,,容器會進入后臺,!但是,有的時候我們需要進入其交互式終端,,對其進行一些命令輸入操作,,此時,我們可以使用docker attach命令或者docker exec命令來實現(xiàn):

  • docker attach

首先,,我們新在后臺啟動一個容器:

root@ubuntu:~# docker run -dit ubuntu:16.04 bash
98ba6098afe1bc1f79893f4f3eca166b091cfeafcb544584b7fd09b7d12f41ef

此時再使用docker container ls命令來查看容器的信息:

root@ubuntu:~# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
98ba6098afe1        ubuntu:16.04        "bash"              52 seconds ago      Up 50 seconds                           cranky_mccarthy

使用docker attach命令,,進入容器交互式環(huán)境:

root@ubuntu:~# docker attach 98ba6098afe1
root@98ba6098afe1:/# 
  • docker exec

同樣,新在后臺啟動一個容器:

root@ubuntu:~# docker run -dit ubuntu:16.04 bash
ea0cda7fe8d75b309e6f911a1acb9f062945a58661e8b389979d6ea7960626df

此時再使用docker container ls命令來查看容器的信息:

root@ubuntu:~# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
ea0cda7fe8d7        ubuntu:16.04        "bash"              About a minute ago   Up About a minute                       quirky_liskov

使用docker exec命令,,進入交互式環(huán)境,,值得注意的是,須指定-i-t參數(shù)和Shell的名稱,,如下:

root@ubuntu:~# docker exec -it ea0cda7fe8d7 
root@ea0cda7fe8d7:/# 

使用docker execdocker attach命令時,,應(yīng)注意:docker attach命令進入交互式環(huán)境時,使用exit命令退出之后,,容器即可終止,,而docker exec命令則不會!所以這兩種命令,,更加推薦使用docker exec!

導(dǎo)出和導(dǎo)入容器

  • 導(dǎo)出容器:如果要導(dǎo)出某個容器到本地,,我們可以使用docker export命令

首先,我們使用docker container ls -a查看以下當前宿主機上存在的所有容器列表:

root@ubuntu:~# docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ea0cda7fe8d7        ubuntu:16.04        "bash"              11 minutes ago      Up 11 minutes                           quirky_liskov

下面,,我們將容器ID為ea0cda7fe8d7的容器導(dǎo)出為test.tar,,如下:

root@ubuntu:~# docker export ea0cda7fe8d7 > test.tar

此時,會在當前目錄下生成一個test.tar名稱的容器快照文件

  • 導(dǎo)入容器:我們可以使用docker import命令導(dǎo)入一個容器快照文件生成一個鏡像

我們將剛剛生成的容器快照文件test.tar導(dǎo)入,,命令如下:

root@ubuntu:~# cat test.tar | docker import - test/ubuntu:v1.0
sha256:048bcf083eb80925b246e161ed58dd03a3c071ebb6b31961034dacbc8f63efbd

導(dǎo)入成功之后,,會在控制臺中輸出摘要信息。此時我們使用docker image ls命令來查看當前宿主機上的鏡像列表:

root@ubuntu:~# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test/ubuntu         v1.0                048bcf083eb8        7 seconds ago       85.9MB
ubuntu              16.04               5e8b97a2a082        3 weeks ago         114MB

我們剛剛導(dǎo)入生成的鏡像已經(jīng)顯示在列表之中了,!此外,,我們還可以通過指定URL或者目錄來導(dǎo)入,如下:

docker import http:///exampleimage.tgz example/imagerepo

導(dǎo)入本地容器快照,,我們還可以使用docker load命令,!

刪除容器

我們可以使用docker container rm命令來刪除一個處于終止狀態(tài)的容器,,例如:

root@ubuntu:~# docker container rm ea0cda7fe8d7
Error response from daemon: You cannot remove a running container ea0cda7fe8d75b309e6f911a1acb9f062945a58661e8b389979d6ea7960626df. Stop the container before attempting removal or force remove

此時,報了一個錯誤,,說此容器正在運行,刪除容器須先終止掉它,!我們使用docker container stop命令來終止此容器,,然后再刪除它:

root@ubuntu:~# docker container stop ea0cda7fe8d7
ea0cda7fe8d7
root@ubuntu:~# docker container rm ea0cda7fe8d7
ea0cda7fe8d7

在上面,我們知道可以使用docker container ls -a來查看當前宿主機上存在的所有容器,,包括正在運行和已經(jīng)停止的容器,。如果當前宿主機上存在很多已經(jīng)停止的容器,一個一個刪除未免太過麻煩,,此時我們可以使用docker container prune命令來清除所有處于終止狀態(tài)的容器:

root@ubuntu:~# docker container prune

更多命令

命令說明
docker container ls列出正在運行的容器
docker ps列出正在運行的容器
docker container ls -a列出所有的容器
docker ps -a列出所有的容器
docker container start啟動容器
docker start啟動容器
docker container stop停止容器
docker stop停止容器
docker container restart重啟容器
docker restart重啟容器
docker container rm刪除容器
docker rm刪除容器
docker container logs打印容器的標準輸出
docker logs打印容器的標準輸出

分別傳入--help參數(shù)查看它們的用法,,發(fā)現(xiàn)docker container ls命令與docker ps命令效果是一樣的!docker container startdocker start效果是一樣的,!docker container stopdocker stop效果是一樣的,!docker container restartdocker restart效果是一樣的!docker container rmdocker rm效果是一樣的,!docker container logsdocker logs效果是一樣的,!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多