1. 程式人生 > >Docker基本命令與使用 —— Docker容器(一)

Docker基本命令與使用 —— Docker容器(一)

使用 -a 基本 com sta start 日誌 靜態頁面 don

一.容器的基本操作

1. 啟動容器

docker run IMAGE [COMMAND] [ARG...]

run 在新容器中執行命令

eg: docker run ubuntu echo ‘Hello World‘ 輸出內容的同時,啟動的容器已經停止,這是一個實行單次命令的容器

2. 啟動交互式容器

docker run -i -t  IMAGE /bin/bash

-i --interactive=true|false 默認是false

-t --tty=true|false 默認是false eg:
docker run -i -t ubuntu /bin/bash 
ps -ef 
exit(退出)

3.查看容器

docker ps [-a][-l] 默認顯示正在運行中的容器

-a 列出所有的容器

-l 列出最新創建的容器
$ docker inspect [容器id/容器Name]

4.自定義容器名

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

eg: docker run --name=container01 -i -t ubuntu /bin/bash

5.重新啟動停止的容器

docker start [-i] 容器名(-i已交互的方式)

eg: docker start -i container01

6.刪除停止的容器

docker rm 容器名/id (只能刪除停止的容器)

二.守護式容器

1.以守護形式運行容器

什麽是守護式容器? 長期運行的容器,沒有交互式的會話,適合應用程序運行
docker run -i -t IMAGE /bin/bash    
Ctrl+P Ctrl+Q    (後臺運行)    
docker ps 可以查看到正在運行的容器

2.附加到運行中的容器

docker attach 容器名/id

3.啟動守護式容器

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

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

(使用shell腳本,當任務執行完,守護式容器依舊會停止)

4. 查看容器日誌

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

-f --follows=true|false 默認為false (一直跟蹤日誌的變化,並返回結果)

-t --timestamps=true}false 默認為false (在返回的結果上加上時間戳) --tail="all" (返回的結尾處多少數量的日誌,不指定則返回所有的日誌) eg: docker logs -tf --tail 10 dc1 docker logs -tf --tail 0 dc1 (tail 0 只顯示最新的日誌)

5.查看容器內進程

docker top 容器名

6.在運行中的容器內啟動新進程

docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]    (與run命令相似)

7.停止守護式容器

docker stop 容器名 (會等待容器的停止) 
docker kill 容器名 (直接停止容器)

8.使用Docker幫助文件

man docker-run    
man docker-logs    
man docker-top    
man docker-exec    
...

三.在容器中部署靜態站點

1.設置容器的端口映射

run [P] [p] -P, --publish-all=true|false 默認為false 為容器暴露的所有端口進行映射 eg: docker run -P -i -t ubuntu /bin/bash -p, --publish=[] 能夠制定映射容器的哪些端口
  1. containerPort 只制定容器的端口,宿主機的端口隨機映射
eg: docker run -p 80 -i -t ubuntu /bin/bash
  1. hostPort:containerPort 同時制定宿主機端口和容器端口,一一對應
eg: docker run -p 8080:80 -i -t ubuntu /bin/bash
  1. ip::containerPort
eg: docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
  1. ip:hostPort:containerPort
eg: docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

2.Nginx部署流程

  1. 創建映射80端口的交互式容器
  2. 安裝Nginx
  3. 安裝文本編輯器vim
  4. 創建靜態頁面
  5. 修改Nginx配置文件
  6. 運行Nginx
  7. 驗證網站訪問
docker run -p 80 --name web -i -t ubuntu /bin/bash
apt-get install -y nginx
apt-get install -y vim
mkdir -p /var/www/html
cd /var/www/html
vim index.html
<html>
<head>
    <title>Nginx in docker</title>
</head>
<body>
    <h1>Hello, I‘m website in docker!</h1>
</body>
</html>
whereis nginx
vim /etc/nginx/sites-enabled/default
修改root 的值為靜態網站根目錄(/var/www/html)
cd /    返回根目錄
nginx    運行nginx
ps -ef    查看nginx進程

Ctrl+P Ctrl+Q 退出

docker ps 查看容器映射的端口 docker port web 查看容器端口映射情況 docker top web 查看容器中進程運行的情況
  1. 通過宿主機的ip地址查看
curl http://127.0.0.1:*** 查看網站返回內容
  1. 通過容器的ip地址查看
docker inspect web 獲取容器的ip地址 curl http://容器ip docker stop web 重啟容器 docker start web docker exec web nginx docker inspect web 停止一個容器並重新啟動時,原先的ip地址和映射的端口也不一樣

Docker基本命令與使用 —— Docker容器(一)