DOCKER 筆記
2.1.程序在我這跑得好好的,在你那怎麽就不行呢?! 這是一個典型的應用場景,Docker image中包含了程序需要的所有的運行時依賴,比如java的程序,肯定要在image中包含jdk;比如Python的程序,肯定要在image中包含對應版本的Python解釋器。程序在我這跑得好好的,去你那就不行了,顯然是環境問題。Docker把整個運行時環境打包放到image中,所以搞定了環境依賴問題!
:Docker解決了運行環境和配置問題,方便發布,也就方便做持續集成。代碼 + 運行環境 + 配置 + 依賴的服務,Docker image中包含了運行環境+配置,這對部署相當友好
2.更輕量的虛擬化,節省了虛擬機的性能損耗
整體遠側上,盡量保持鏡像功能的明確和內容的精簡,要點包括:
盡量選取滿足需求但較小的基礎系統鏡像,建議選擇debian:wheezy鏡像,僅有86MB大小
清理編譯生成文件、安裝包的緩存等臨時文件
安裝各個軟件時候要指定準確的版本號,並避免引入不需要的依賴
從安全的角度考慮,應用盡量使用系統的庫和依賴
使用Dockerfile創建鏡像時候要添加.dockerignore文件或使用幹凈的工作目錄
4.如何控制容器占用系統資源(CPU,內存)的份額
在使用docker create命令創建容器或使用docker run 創建並運行容器的時候,可以使用-c|–cpu-shares[=0]參數來調整同期使用CPU的權重,使用-m|–memory參數來調整容器使用內存的大小。
6.Docker的配置文件放在那裏。如何修改配置
Ubuntu系統下Docker的配置文件是/etc/default/docker,CentOS系統配置文件存放在/etc/sysconfig/docker
7.Docker與LXC(Linux Container)有何不同
LXC利用Linux上相關技術實現容器,Docker則在如下的幾個方面進行了改進:
移植性:通過抽象容器配置,容器可以實現一個平臺移植到另一個平臺;
鏡像系統:基於AUFS的鏡像系統為容器的分發帶來了很多的便利,同時共同的鏡像層只需要存儲一份,實現高效率的存儲;
倉庫系統:倉庫系統大大降低了鏡像的分發和管理的成本;
周邊工具:各種現有的工具(配置管理、雲平臺)對Docker的支持,以及基於Docker的Pass、CI等系統,讓Docker的應用更加方便和多
二、docker 的常規命令
安裝 docker
yum clean all
yum install -y docker-engine docker-engine-selinux
設置開機啟動,啟動 docker 服務
systemctl enable docker
systemctl start docker
系統剛剛配置完是沒有鏡像的
查看系統鏡像
docker images
從官方源搜索鏡像
docker search busybox
下載鏡像
docker pull busybox
網上直接下載鏡像
上傳鏡像
docker push busybox
把本地的鏡像備份為 tar 包
docker save busybox(已經存在的鏡像名) >busybox.tar
把備份的tar包導入到本機鏡像
docker load <busybox.tar
練習導入鏡像
1、查看容器
docker ps
2、創建一個 bash 交互的容器
docker run -it centos /bin/bash
3、創建一個非交互的容器
docker run nginx
docker run -itd centos /bin/bash
查看鏡像列表
docker images
查看鏡像制作歷史docker history busybox
查看鏡像底層信息
docker inspect busybox
下載鏡像docker pull busybox
上傳鏡像docker push
刪除本地鏡像docker rmi busybox
鏡像另存為tar包docker save busybox >busybox.tar
使用tar包導入鏡像
docker load <busybox.tar
搜索鏡像
docker search busybox
修改鏡像名稱和標簽
docker tag busybox:latest busybox:v1
容器相關命令
以交互模式啟動一個容器
docker run -it centos bash
啟動的容器放在後臺
docker run -itd centos bash
顯示正在運行的容器
docker ps
顯示所有容器
docker ps -a
顯示所有容器,但只顯示 id
docker ps -aq
啟動,停止,重啟容器
docker start|stop|restart 容器id
進入容器
docker exec -it 容器id /bin/bash
連接容器 console,exit 退出會導致容器關閉,可以使用 CTRL +(p,q) 退出
docker attach 容器id
顯示容器詳細信息
docker inspect 容器id
查看容器內運行的進程
docker top 容器id
刪除容器
docker rm 容器id
關閉所有容器
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
DOCKER 筆記