【Docker】docker的介紹、安裝及使用教程
0.什麼是docker?
Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、 bare metal、OpenStack 集羣和其他的基礎應用平臺。
Docker通常用於如下場景:
web應用的自動化打包和發佈;
自動化測試和持續集成、發佈;
在服務型環境中部署和調整數據庫或其他的後臺應用;
從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
上面兩段文字引用自參考文獻[1]。
1.安裝docker並查看狀態
1.1 docker安裝
在終端執行命令
curl -sSL https://get.daocloud.io/docker | sh
1.2 查看docker服務狀態
終端執行:
systemctl status docker
當顯示輸出:
Active: active (running)
表明已經啓動,否則則需要執行下面的命令來啓動:
systemctl start docker
2.製作自己的鏡像
2.1 從遠程倉庫拉取Ubuntu 18.04 LTS的鏡像
我們一般並不建議大家從頭進行所有的工作,大家可以Pull一個已經發布的功能相對完善的鏡像,在其基礎上進行我們自己的開發工作,這可以大大節約我們的開發時間。
由於docker默認的源爲國外官方源,下載速度較慢,可改爲國內,加速
修改或新增 /etc/docker/daemon.json
, 終端執行:
sudo vim /etc/docker/daemon.json
修改或添加的內容爲:
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
保存後終端執行:
systemctl restart docker.service
而後,拉取鏡像(之所以選擇這個鏡像,是因爲可以使用這個鏡像結合VNC-Viewer方便的進行可視化顯示):
sudo docker pull dorowu/ubuntu-desktop-lxde-vnc:bionic
拉取完成後,可以看到
Status: Downloaded newer image for dorowu/ubuntu-desktop-lxde-vnc:bionic
docker.io/dorowu/ubuntu-desktop-lxde-vnc:bionic
查看我們的docker鏡像,終端執行:
sudo docker images
此時輸出
fire@fire-P7xxTM1:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dorowu/ubuntu-desktop-lxde-vnc bionic 16ac25e8daa0 9 months ago 1.06GB
2.2 創建容器
終端執行:
sudo docker run -dit --name=容器名 鏡像ID /bin/bash
查看當前所有的容器:
fire@fire-P7xxTM1:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8dacd0d37b89 16ac25e8daa0 "/startup.sh /bin/ba…" 55 seconds ago Up 54 seconds (healthy) 80/tcp xtdrone_melodic
xtdrone_melodic
就是我們上面命令所設置的榮啓銘,您可以根據自己的鏡像用途來進行命名,最好是有實際意義的名字。
2.3 容器的使用
方式1
啓動容器
sudo docker start 容器名
進入容器,這時可以在宿主機器上通過命令行來控制並使用docker容器
sudo docker exec -it 容器名 /bin/bash
我們可以使用VNC-viewer來使用GUI來操作容器
wget https://www.realvnc.com/download/file/viewer.files/VNC-Viewer-6.19.107-Linux-x64
chmod +x VNC-Viewer-6.19.107-Linux-x64
./VNC-Viewer-6.19.107-Linux-x64
在VNC-Viewer中輸入地址如下進行連接,以可視化操作
127.0.0.1:5900
方式2
當然,也可以直接這樣來啓動一個容器來運行鏡像,不過這時,系統會隨機創建一個容器名:
sudo docker run -p 6080:80 -p 5900:5900 -v /dev/shm:/dev/shm 鏡像名
您也可以通過增加運行選項-e RESOLUTION=1920x1080
來指定docker中的分辨率:
sudo docker run -p 6080:80 -p 5900:5900 -e RESOLUTION=1920x1080 -v /dev/shm:/dev/shm 鏡像名
在VNC-Viewer中輸入地址如下進行連接,以可視化操作
127.0.0.1:5900
2.4 製作鏡像
方式1
製作自己的鏡像
sudo docker commit -m '鏡像描述' -a '作者' 容器名 目標鏡像名
這種方式製作的鏡像可以發佈到docker服務器上。
方式2
我們也可以將容器導出爲tar格式鏡像,可以很方便地在多臺計算機之間遷移。
sudo docker save -o 目標鏡像名.tar 容器名稱
加載tar格式的鏡像
sudo docker load < 鏡像名.tar
3.docker常用命令
1.查看容器相關信息
sudo docker inspect 容器名
2.容器重命名
docker rename 原容器名 新容器名
3.刪除鏡像
sudo docker rmi 鏡像名
4.刪除容器
sudo docker rm 容器名
5.從宿主機器拷貝文件到docker容器
sudo docker cp 宿主機器路徑及文件 容器ID:容器存放路徑
6.push鏡像到docker 服務器
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
4.參考文獻:
1.王春生, 什麼是Docker?
2.docker 製作自己的鏡像
3.如何在Linux上創建,列出和刪除Docker容器
4.Ubuntu如何安裝vncserver