docker安裝與應用
一.docker簡介
VM是一個執行在宿主機之上的完整的作業系統,VM執行自身作業系統會佔用較多的CPU、記憶體、硬碟資源。Docker不同於VM,只包含應用程式以及依賴庫,基於libcontainer執行在宿主機上,並處於一個隔離的環境中,這使得Docker更加輕量高效,啟動容器只需幾秒鐘之內完成。由於Docker輕量、資源佔用少,使得Docker可以輕易的應用到構建標準化的應用中。
二.docker相關概念
- Docker daemon: 執行在宿主機上,Docker守護程序,使用者通過Docker client(Docker命令)與Docker daemon互動
- Docker client:
- Docker image:映象是隻讀的,映象中包含有需要執行的檔案。映象用來建立container,一個映象可以執行多個container;映象可以通過Dockerfile建立,也可以從Docker hub/registry上下載。 - Docker container:容器是Docker的執行元件,啟動一個映象就是一個容器,容器是一個隔離環境,多個容器之間不會相互影響,保證容器中的程式執行在一個相對安全的環境中。
- Docker hub/registry: 共享和管理Docker映象,使用者可以上傳或者下載上面的映象,官方地址為https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。
三.ubuntu下docker
1.檢視版本和儲存驅動檔案是否存在
ls -l /sys/class/misc/device-mapper
2.curl安裝docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
3.檢視版本號
docker version
4.使用非root賬戶使用者組
sudo groupadd docker
sudo gpasswd a ${USER} docker
suod service docker restart
5.輸出hello world
docker run ubuntu echo 'Hello World'
四.docker命令
1.檢視版本
docker version
2.搜尋映象
docker search tutorial
3.下載映象
docker pull learn/tutorial
4.執行映象
docker run learn/tutorial echo 'hello world'
5.容器中安裝ping命令
docker run lean/tutorial apt-get install -y ping
6.檢視docker內正在執行的映象
docker ps -l
7.從容器建立一個新的映象,返回一個唯一編碼
docker commit a5c0153795a8 learn/ping
8.執行命令
docker run learn/ping ping www.baidu.com
9.獲取容器/映象的元資料
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
10.檢視docker儲存了哪些映象
docker images
11.將映象儲存到倉庫中
docker push learn/ping
12.殺死所有running狀態的容器
docker kill $(docker ps -q)
13.刪除所有已經停止的容器
docker rm $(docker ps -a -q)
五.在容器中部署靜態網站
1.埠對映
sudo docker run -p 80 --name web -i -t ubuntu /bin/bash
2.安裝nginx
apt-get install -y nginx
注:如果出錯則更新源
apt-get update
3.安裝vim
apt-get install -y vim
4.設定存放網站的目錄
mkdir -p /var/www/html
cd /var/www/html
建立靜態頁面
vim index.html
5.檢視並配置nginx
whereis nginx
cd /etc/nginx/sites-enabled
vim default
將root值修改為剛剛建立網站的地址,根目錄下執行nginx
nginx
容器中檢視當前程序
ps -ef
ctrl+P+Q退出,使容器保持在後臺一直執行
6.檢視網站內容
檢視埠對映
sudo docker port web
檢視容器中程序執行情況
sudo docker top web
檢視網站
curl http://127.0.0.1:32768
可在瀏覽器中中直接登入,也可用容器的ip地址訪問
docker inspect web
停掉程序
docker stop web
重啟容器
sudo docker start -i web
ps -ef檢視程序並沒有啟動nginx,ctrl+p+q退出,用exec命令啟動nginx
sudo docker exec web nginx
注意:重啟一個容器時原來的ip地址和對映都會發生改變,用docker inspect web 檢視。
七.檢視和刪除映象
1.檢視映象的儲存地址(/var/lib/docker)
sudo docker info
2.列出映象
docker images -a
第一列,映象所屬倉庫名
3.刪除映象
docker rmi [id]
注:可刪除多個映象
八.從本地下載映象並上傳到伺服器
1.找到映象版本號
2.將映象儲存到本地
docker save 映象ID> /home/name.tar
3.上傳到雲平臺後用 docker load < name.tar 安裝
4.再用docker tag修改下名字