2018-10-26筆記
Docker中的容器,可以看作是將程序 + 運行環(huán)境的打包后的新程序。這時候,你就不用關(guān)心你的程序的運行環(huán)境了,因為容器里面的環(huán)境就是你當時開發(fā)環(huán)境的一個拷貝。
Docker環(huán)境搭建
我是Ubuntu16.04(64位),先在終端執(zhí)行lsb_release -cs(我的輸出結(jié)果是xenial),訪問下載地址,依次選擇xenial/pool/stable/amd64/,選擇要下載的版本,復(fù)制鏈接地址,
$ wget https://download.docker.com/linux/ubuntu/dists/$(lsb_release -cs)/pool/stable/amd64/docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb
$ dpkg -i docker-ce_18.06.1~ce~3-0~ubuntu_amd64.deb
$ sudo usermod -aG docker $USER #將用戶加入docker組,避免每次都要sudo
重啟終端,不然還是需要sudo
$ docker run hello-world

docker-hello-world.png
注:可能會保存因為依賴包沒有安裝,根據(jù)錯誤信息安裝即可
添加鏡像源
主要是加速作用,不然可能有時候會卡半天。
$ sudo vi /etc/docker/daemon.json
$ sudo cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] #國內(nèi)鏡像源
}
$ sudo systemctl enable docker #設(shè)置開機啟動
$ sudo systemctl daemon-reload #重新加載配置
$ sudo systemctl restart docker #重啟docker
docker-compose
這個Python程序可以方便地管理多個Docker實例組成的分布式服務(wù)。
$ sudo apt install python3-pip
$ sudo pip3 install docker-compose
Docker簡單使用
運行容器
$ docker run hello-world
- 這個命令首先會檢查本地是否有
hello-world容器 - 如果沒有就通過
image創(chuàng)建,其中image就是容器的模板(一個二進制文件),docker run image_name,實際上就是創(chuàng)建一個image實例,最后容器也就是一個文件。(也就是說,image就像相當于類,容器相當于類實例) - 如果本地沒有
image就從docker的倉庫下載下來 - 創(chuàng)建一個新的容器,并且啟動容器
列出運行中容器
$ docker container ls #列出運行中的容器
$ docker container ls -all #列出全部容器

docker-containers.png
第一個字段是
ID,用來標識容器實例,因為一個image可以生成多個容器。
結(jié)束容器運行
$ docker container kill $Container_ID #強行結(jié)束運行中的容器,這個主要用來針對作為服務(wù)運行的容器
刪除容器
容器在結(jié)束運行后,一般不會自動刪除,除非image中進行了配置,或者在run的使用使用了-rm。那么刪除容器的命令是:
$ docker container rm $Container_ID
清理命令
docker 1.13開始 的清理命令
$ docker container prune -f #刪除所有停止容器
$ docker image prune -f -a #刪除所有鏡像
刪除none鏡像
none 鏡像是一些沒有成功build的臨時鏡像,刪掉即可。
$ docker rmi $(docker images -f "dangling=true" -q)
Docker還有很多強大功能,暫時我也只用到這幾個而已了。