
應(yīng)用應(yīng)該脫離底層硬件的限制,在任何時間與地點可以獲取 ,Docker就是基于此思想 ,可以快速分發(fā)與部署。
有了docker可以輕松將網(wǎng)站在不同操作系統(tǒng),不同云服務(wù)器中遷移。只要把容器打包,就可以輕松部署。不需要像過去一樣,重復(fù)安裝 mysql/php/apache....。
與虛擬機比較
- 使用內(nèi)核虛擬化技術(shù)速度更快
- 系統(tǒng)資源點用少,一臺主機上可以同時運行數(shù)千個 Docker 容器。
- 起動速度秒級,而虛擬機分鐘級
- 硬盤占用更少,虛擬機是完整系統(tǒng)占用往往達到G級
官網(wǎng)文檔:https://docs.docker.com/install/overview/
基礎(chǔ)知識
鏡像
鏡像類似于虛擬機中的鏡像,鏡像是只讀的,可以方便的從網(wǎng)上下載鏡像,類似面向?qū)ο缶幊讨械念悺?/p>
容器
容器是從鏡像創(chuàng)建的運行對象??梢詥?刪除/停止,容器間都是相互獨立的,類似面向?qū)ο缶幊讨械膶ο蟆?/p>
倉庫
類型于管理鏡像的GITHUB,可以將鏡像提交到倉庫,供其他用戶或其他平臺輕松使用。
加速器
提升國內(nèi)用戶訪問 Docker Hub 拉取鏡像的速度及穩(wěn)定性。
Linux
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
http://f1361db2.m.daocloud.io
該腳本可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。適用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有細微不同。更多詳情請訪問文檔。
macOS
Docker For Mac
右鍵點擊桌面頂欄的 docker 圖標,選擇 Preferences ,在 Daemon 標簽(Docker 17.03 之前版本為 Advanced 標簽)下的 Registry mirrors 列表中加入下面的鏡像地址:
http://f1361db2.m.daocloud.io
點擊 Apply & Restart 按鈕使設(shè)置生效。
Docker Toolbox 等配置方法請參考幫助文檔。
Windows
Docker For Windows
在桌面右下角狀態(tài)欄中右鍵 docker 圖標,修改在 Docker Daemon 標簽頁中的 json ,把下面的地址:
http://f1361db2.m.daocloud.io
加到"registry-mirrors"的數(shù)組里。點擊 Apply 。
ubuntu
環(huán)境配置
- 刪除舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
- 更新apt包索引:
sudo apt-get update
- 安裝包以允許apt通過HTTPS使用存儲庫:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加Docker的官方GPG密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜索指紋的最后8個字符,驗證您現(xiàn)在擁有帶指紋的密鑰 。
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
- 添加軟件源
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 更新apt包索引。
sudo apt-get update
某些系統(tǒng)更新失敗
當執(zhí)行 apt-get update 失敗時,使用命令 sudo software-properties-gtk 在軟件的 Other Software 標簽中將 https://download.docker.com/linux/ubuntu 源的distribution 值設(shè)置為bionic,也可以直接修改 /etc/apt/source.lists 文件。
安裝方法
- 安裝最新版本的Docker CE和containerd,或者轉(zhuǎn)到下一步安裝特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 通過運行hello-world 映像驗證是否正確安裝了Docker CE 。
sudo docker run hello-world
進程維護
- 停止、啟動、重啟docker
sudo systemctl start | stop | restart docker.service
- 查看docker版本
sudo docker version
- 加入開機自啟
sudo systemctl enable docker
- 開機啟動檢測
sudo systemctl list-unit-files | grep docker
維護
升級
要升級Docker CE,請先運行sudo apt-get update
卸載
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker docker.io
sudo rm -rf /var/lib/docker
sudo apt autoremove
普通帳號
每次運行docker都要使用 sudo,下面介紹使用當前登錄帳號執(zhí)行 docker 的方法
- 創(chuàng)建
docker組。
sudo groupadd docker
- 將您的用戶添加到該docker組。
sudo usermod -aG docker $USER
注銷并重新登錄,以便重新評估您的組成員身份。
如果在虛擬機上進行測試,則可能需要重新啟動虛擬機才能使更改生效。
在桌面Linux環(huán)境(如X Windows)上,完全注銷會話,然后重新登錄。驗證您是否可以運行 docker 命令
sudo。
docker run hello-world
基本使用
鏡像管理
# 搜索鏡像
docker search ubuntu
# 安裝ubuntu鏡像
docker pull ubuntu
# 查看鏡像列表
docker images
刪除鏡像
可以使用name或tag刪除鏡像,要保證沒有容器使用該鏡像。
docker rmi -f ubuntu:latest
批量刪除鏡像
docker rmi `docker images -q`
服務(wù)容器
以守護進程啟動容器
docker run -tid ubuntu /bin/bash
查看運行的容器
docker ps
登錄容器
docker exec -it 3c5e00452777 /bin/bash
停止容器
docker stop 3c5e00452777
# kill 立刻停止容器,類似于直接關(guān)機
docker kill 3c5e00452777
啟動停止的容器
docker start 3c5e00452777
刪除容器
docker rm -f ubuntu:latest
批量刪除容器
docker rm `docker ps -a -q`
指定容器名
# 執(zhí)行 ubuntu 鏡像生成新容器 hd
docker run -tid --name hd ubuntu /bin/bash
查看容器進程
docker top ubuntu
查看容器端口映射
docker port pf
查看容器元信息(如IP)
docker inspect pf