Docker的使用

1. Docker介紹

  • Docker中文社區文檔html

  • Docker 是一個開源的軟件部署解決方案。python

  • Docker 也是輕量級的應用容器框架。linux

  • Docker 能夠打包、發佈、運行任何的應用。docker

  • Docker 是一個客戶端-服務端(C/S)架構程序。ubuntu

Docker 包括三個基本概念:鏡像(Image)、容器(Container)、倉庫(Repository)。bash

  • 鏡像(Image)服務器

    • Docker的鏡像概念相似於虛擬機裏的鏡像,是一個只讀的模板,一個獨立的文件系統,包括運行容器所需的數據,能夠用來建立新的容器。網絡

    • 例如:一個鏡像能夠包含一個完整的 ubuntu 操做系統環境,裏面僅安裝了MySQL或用戶須要的其它應用程序。架構

  • 容器(Container)負載均衡

    • Docker容器是由Docker鏡像建立的運行實例,相似VM虛擬機,支持啓動,中止,刪除等。

    • 每一個容器間是相互隔離的,容器中會運行特定的應用,包含特定應用的代碼及所需的依賴文件。

  • 倉庫(Repository)

    • Docker的倉庫功能相似於Github,是用於託管鏡像的。

2.基本使用

2.1啓動與中止

# 啓動docker
$ sudo service docker start
# 重啓docker
$ sudo service docker restart
# 中止
docker$ sudo service docker stop複製代碼

2.2 Docker鏡像操做

# 顯示鏡像列表
$ sudo docker image ls
# 從倉庫拉取鏡像

# 官方鏡像
$ sudo docker image pull 鏡像名稱 或者 sudo docker image pull library/鏡像名稱 # 拉取官方最新鏡像
$ sudo docker image pull ubuntu 或者 sudo docker image pull library/ubuntu
$ sudo docker image pull ubuntu:16.04 或者 sudo docker image pull library/ubuntu:16.04 # 指定特定版本鏡像

# 從倉庫拉取鏡像
$ sudo docker image pull delron/fastdfs  # 一個分佈式文件服務器系統複製代碼


* REPOSITORY:鏡像所在的倉庫名稱 
* TAG:鏡像標籤,不是最新的會顯示版本號
* IMAGEID:鏡像ID 
* CREATED:鏡像的建立日期(不是獲取該鏡像的日期) 
* SIZE:鏡像大小複製代碼


2.3 刪除鏡像

$ sudo docker image rm 鏡像名或鏡像ID
$ sudo docker image rm hello-world
$ sudo docker image rm fce289e99eb9複製代碼


3. Docker容器操做

3.1 容器列表

# 查看正在運行的容器
$ sudo docker container ls
# 查看全部的容器
$ sudo docker container ls --all複製代碼


3.2 建立容器

$ sudo docker run [option] 鏡像名 [向啓動容器中傳入的命令]
經常使用可選參數說明:
* -i 表示以《交互模式》運行容器。
* -t 表示容器啓動後會進入其命令行。加入這兩個參數後,容器建立就能登陸進去。即分配一個僞終端。
* --name 爲建立的容器命名。
* -v 表示目錄映射關係,即宿主機目錄:容器中目錄。注意:最好作目錄映射,在宿主機上作修改,而後共享到容器上。 
* -d 會建立一個守護式容器在後臺運行(這樣建立容器後不會自動登陸容器)。 
* -p 表示端口映射,即宿主機端口:容器中端口。
* --network=host 表示將主機的網絡環境映射到容器中,使容器的網絡與主機相同。複製代碼

3.3交互式容器

在容器中能夠隨意執行linux命令,就是一個ubuntu的環境,當執行 exit 命令退出時,該容器隨之中止。若是對於一個須要長期運行的容器來講,咱們能夠建立一個守護式容器。在容器內部執行 exit 命令退出時,該容器也隨之中止。

$ sudo docker run -it --name=ubuntu1 ubuntu /bin/bash
# 開啓守護式容器
$ sudo docker run -dit --name=ubuntu2 ubuntu
# 進入到容器內部交互環境
$ sudo docker exec -it 容器名或容器id 進入後執行的第一個命令
$ sudo docker exec -it ubuntu2 /bin/bash複製代碼

3.4 中止和啓動容器

# 中止容器
$ sudo docker container stop 容器名或容器id
# kill掉容器
$ sudo docker container kill 容器名或容器id
# 啓動容器
$ sudo docker container start 容器名或容器id
 # 刪除容器
$ sudo docker container rm 容器名或容器id複製代碼

注意:正在運行的容器沒法直接刪除,必須先停掉在刪。

3.5 容器製做成鏡像

  • 爲保證已經配置完成的環境能夠重複利用,咱們能夠將容器製做成鏡像。

# 將容器製做成鏡像
$ sudo docker commit 容器名 鏡像名
# 鏡像打包備份
$ sudo docker save -o 保存的文件名 鏡像名
# 鏡像解壓
$ sudo docker load -i 文件路徑/備份文件複製代碼

4 使用Docker安裝FastDFS

FastDFS介紹

  • c語言編寫的一款開源的輕量級分佈式文件系統。

  • 功能包括:文件存儲、文件訪問(文件上傳、文件下載)、文件同步等,解決了大容量存儲和負載均衡的問題。特別適合以文件爲載體的在線服務,如相冊網站、視頻網站等等。

  • 爲互聯網量身定製,充分考慮了冗餘備份、負載均衡、線性擴容等機制,並注重高可用、高性能等指標。

  • 能夠幫助咱們搭建一套高性能的文件服務器集羣,並提供文件上傳、下載等服務。

4.1 獲取FastDFS鏡像

# 從倉庫拉取鏡像,聯網安裝
$ sudo docker image pull delron/fastdfs
# 本地鏡像安裝方式
$ sudo docker load -i 文件路徑/fastdfs_docker.tar複製代碼

4.2 開啓tracker容器

先在/var目錄下創建一個fdfs目錄,並給上最高權限,映射到宿主機的 /var/fdfs/tracker目錄中

sudo mkdir /var/fdfs
sudo chmod 777 /var/fdfs
sudo docker run -dit --name tracker --network=host -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker複製代碼

4.3 開啓storage容器

  • TRACKER_SERVER=Tracker的ip地址:22122(Tracker的ip地址不要使用127.0.0.1),經過ifconfig查看。

  • 咱們將 storage 運行目錄映射到宿主機的 /var/fdfs/storage目錄中。

sudo docker run -dti --name storage --network=host -e TRACKER_SERVER=192.168.103.158:22122 -v /var/fdfs/storage:/var/fdfs delron/fastdfs storage複製代碼

注意:若是沒法重啓storage容器,能夠刪除/var/fdfs/storage/data目錄下的fdfs_storaged.pid 文件,而後從新運行storage。

相關文章
相關標籤/搜索