天天看點

Docker基礎學習(三)-Docker容器

一,容器的基本操作

1,啟動容器:

$ docker run IMAGE[COMMAND] [AEG...]

IMAGE:指定容器運作的鏡像

COMMAND:指定運作的指令

ARG:運作的參數

例如:

$ docker run ubuntu echo "Hello World"
           
這一個執行單次指令的容器,輸出“Hello World”之後,容器就停止了
      

2,啟動互動式容器:

$ docker run -i -t IMAGE /bin/bash

-i --interactive=ture|false 預設是false  //告訴docker守護程序為容器始終打開标準輸入

-t --tty=true|false 預設是false //配置設定一個僞tty終端

例如:

$docker run -i -t  ubuntu /bin/bash
           

3,檢視容器:

$ docker ps [-a][-l]

不加參數,檢視正在運作的容器

-a:檢視所有的容器

-l:檢視最新的一個容器

$ docker inspect 容器名或容器ID

檢視容器詳細的配置資訊

4,自定義容器的名字:

$ docker run --name=自定義名 -i -t IMAGE /bin/bash

5,重新開機啟動停止的容器:

$ docker start [-i] 容器名或容器ID

6,删除停止的容器:

$ docker rm 容器名或容器ID

二,守護式容器

1,什麼是守護式容器:

(1)能夠長期運作

(2)沒有互動式會話

(3)适合運作應用程式和服務

2,以守護形式運作容器:

$ docker run -i -t IMAGE /bin/bash

運作之後,不用退出,執行Ctrl+P Ctrl+Q

3,附加到運作中的容器:

$ docker attach 容器名或容器ID

4,啟動守護式容器:

$ docker run -d 鏡像名[COMMAND][ARG...]

-d 以背景形式運作容器

例如:

$ docker run --name dc1 -d ubuntu /bin/sh -c "while true;do echo hello world;sleep 1;done"
           

5,檢視容器日志:

$ docker logs [-f][-t][--tail] 容器名

-f --follows=true|false 預設為false //一直跟蹤日志的變化,并傳回結果

-t --timestamps=true|false 預設為false //在傳回的結果加上時間戳

--tail ="all" //傳回結尾處多少數量的日志

不指定參數,傳回所有的日志

6,檢視容器内程序:

$docker top 容器名或容器ID

7,在運作的容器内啟動新程序:

$ docker exec [-d][-i][-t] 容器名[COMMAND][AGR...]

例如:

$ docker exec -d -t -i dc1 /bin/bash
           

8,停止守護式容器:

$ docker stop 容器名|容器ID  //發送信号給容器,等待容器的停止,停止後傳回容器名

$ docker kill 容器名或容器  //直接停止容器

三,在容器中部署靜态網站

1,設定容器的端口映射

run [-P][-p]

-P,-publish-all=true|false 預設為false //将容器暴露的所有的端口進行映射

例如:

$ docker run -P -i -t ubuntu /bin/bash
           
-p,--publish=[],可以指定映射哪些容器的端口,下面使用的四種方式      

(1)containerPort,隻指定容器的端口,映射的主控端的端口是随機的

$ docker run -p 80 -i -t ubuntu /bin/bash
           

(2)hostPort:containerPort:,同時指定主控端的端口和容器的端口

$ docker run -p 8080:80 -i -t ubuntu /bin/bash
           

(3)ip:containerPort,指定ip和容器的端口

$ docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
           

(4)ip:hostPort:containerPort,指定ip,主控端端口,容器端口

$ docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
           

2,在容器中部署靜态網站-Nginx部署流程

(1)建立映射80端口的互動式容器

$ docker run -p 80 --name=web -i -t ubuntu /bin/bash
           

(2)安裝Nginx

# apt-get install -y nginx
           

執行安裝指令,可能出現如下情況:

Docker基礎學習(三)-Docker容器

這時需要執行apt-get update指令,這個指令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,這樣才能擷取到最新的軟體包。

Docker基礎學習(三)-Docker容器

重新執行安裝指令,可以看到安裝完成

Docker基礎學習(三)-Docker容器

(3)安裝文本編輯器vim

# apt-get install -y vim
           

(4)建立靜态頁面

Docker基礎學習(三)-Docker容器
Docker基礎學習(三)-Docker容器

(5)修改Nginx配置檔案

Docker基礎學習(三)-Docker容器
Docker基礎學習(三)-Docker容器

(6)運作Nginx

Docker基礎學習(三)-Docker容器

(7)驗證網站通路

1,檢視端口映射

Docker基礎學習(三)-Docker容器

2,通路

Docker基礎學習(三)-Docker容器
Docker基礎學習(三)-Docker容器