docker基本使用

1.安裝 docker 

  yum install docker python

2.啓動 docker

   systemctl start dockerweb

3.鏡像加速

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1vrl02yk.mirror.aliyuncs.com"] } EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

 

 

4.容器使用

4.1獲取鏡像

 

若是本地沒有 ubuntu 鏡像,可使用 docker pull 命令來載入 ubuntu 鏡像:docker

 

 docker pull ubuntu

4.2啓動容器

如下命令使用 ubuntu 鏡像啓動一個容器,參數爲以命令行模式進入該容器:json

docker run -it ubuntu /bin/bash

 

 

參數說明:ubuntu

  • -i: 交互式操做。
  • -t: 終端。
  • ubuntu: ubuntu 鏡像。
  • /bin/bash:放在鏡像名後的是命令,這裏咱們但願有個交互式 Shell,所以用的是 /bin/bash。

要退出終端,直接輸入 exit:瀏覽器

exit

  

4.3啓動已中止運行的容器

查看全部的容器命令以下:bash

 docker ps -a

 

 

 

使用 docker start 啓動一個已中止的容器:網絡

docker start b750bbbcfd88

4.4後臺運行

在大部分的場景下,咱們但願 docker 的服務是在後臺運行的,咱們能夠過 -d 指定容器的運行模式。app

$ docker run -itd --name ubuntu-test ubuntu /bin/bashwebapp

點擊圖片查看大圖:  

 

 

 

 

 注:加了 -d 參數默認不會進入容器,想要進入容器須要使用指令 docker exec(下面會介紹到)。

4.5中止一個容器

中止容器的命令以下:

$ docker stop <容器 ID>

 

 

 中止的容器能夠經過 docker restart 重啓:

$ docker restart <容器 ID>

 

 

4.6進入容器

在使用 -d 參數時,容器啓動後會進入後臺。此時想要進入容器,能夠經過如下指令進入:

docker attach

docker exec:推薦你們使用 docker exec 命令,由於此退出容器終端,不會致使容器的中止。

attach 命令

下面演示了使用 docker attach 命令。

 docker attach 1e560fca3906 

 

 

注意: 若是從這個容器退出,會致使容器的中止。

exec 命令

下面演示了使用 docker exec 命令。

docker exec -it 243c32535da7 /bin/bash

 

注意: 若是從這個容器退出,不會致使容器的中止,這就是爲何推薦你們使用 docker exec 的緣由。

更多參數說明請使用 docker exec --help 命令查看。

4.7導出和導入容器

導出容器

若是要導出本地某個容器,可使用 docker export 命令。

docker export 1e560fca3906 > ubuntu.tar

 

導出容器 1e560fca3906 快照到本地文件 ubuntu.tar。

 

 

這樣將導出容器快照到本地文件。

導入容器快照

可使用 docker import 從容器快照文件中再導入爲鏡像,如下實例將快照文件 ubuntu.tar 導入到鏡像 test/ubuntu:v1:

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

 

 

 

此外,也能夠經過指定 URL 或者某個目錄來導入,例如:

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

 

4.8刪除容器

刪除容器使用 docker rm 命令:

docker rm -f 1e560fca3906

 

 

下面的命令能夠清理掉全部處於終止狀態的容器。

 docker container prune

5.運行一個 web 應用

前面運行的容器並無一些什麼特別的用處。

接下來使用 docker 構建一個 web 應用程序。

將在docker容器中運行一個 Python Flask 應用來運行一個web應用。

docker pull training/webapp  

docker run -d -P training/webapp python app.py

參數說明:

-d:讓容器在後臺運行。

-P:將容器內部使用的網絡端口隨機映射到咱們使用的主機上。

6.查看 WEB 應用容器

使用 docker ps 來查看正在運行的容器:

docker ps

 

 

這裏多了端口信息。

PORTS0.0.0.0:32769->5000/tcp

Docker 開放了 5000 端口(默認 Python Flask 端口)映射到主機端口 上。

這時能夠經過瀏覽器訪問WEB應用

 

 

 

 

也能夠經過 -p 參數來設置不同的端口:

 docker run -d -p 5000:5000 training/webapp python app.py

 

docker ps查看正在運行的容器

runoob@runoob:~#  docker ps

 

 容器內部的 5000 端口映射到咱們本地主機的 5000 端口上。

7.網絡端口的快捷方式

經過 docker ps 命令能夠查看到容器的端口映射,docker 還提供了另外一個快捷方式 docker port,使用 docker port 能夠查看指定 (ID 或者名字)容器的某個肯定端口映射到宿主機的端口號。

上面建立的 web 應用容器 ID 爲 bf08b7f2cd89 名字爲 wizardly_chandrasekhar

可使用 docker port bf08b7f2cd89 或 docker port wizardly_chandrasekhar 來查看容器端口的映射狀況。

docker port bf08b7f2cd895000/tcp -> 0.0.0.0:5000

docker port wizardly_chandrasekhar5000/tcp -> 0.0.0.0:5000

8.查看 WEB 應用程序日誌

docker logs [ID或者名字] 能夠查看容器內部的標準輸出。

docker logs -f bf08b7f2cd89

-f: 讓 docker logs 像使用 tail -f 同樣來輸出容器內部的標準輸出。

從上面,咱們能夠看到應用程序使用的是 5000 端口而且可以查看到應用程序的訪問日誌。

 

10.檢查 WEB 應用程序

使用 docker inspect 來查看 Docker 的底層信息。它會返回一個 JSON 文件記錄着 Docker 容器的配置和狀態信息。

docker inspect wizardly_chandrasekhar

11.中止 WEB 應用容器

 docker stop wizardly_chandrasekhar

12.重啓WEB應用容器

已經中止的容器,可使用命令 docker start 來啓動。

 docker start wizardly_chandrasekhar

docker ps -l 查詢最後一次建立的容器:

docker ps -l

正在運行的容器,咱們可使用 docker restart 命令來重啓。

 

13.移除WEB應用容器

可使用 docker rm 命令來刪除不須要的容器

docker rm wizardly_chandrasekhar  

刪除容器時,容器必須是中止狀態,不然會報以下錯誤

runoob@runoob:~$ docker rm wizardly_chandrasekharError response from daemon: You cannot remove a running container bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container before attempting removal or force remove
相關文章
相關標籤/搜索