DOCKER 筆記

1、docker的意義
2.1.程序在我這跑得好好的,在你那怎麼就不行呢?! 這是一個典型的應用場景,Docker image中包含了程序須要的全部的運行時依賴,好比java的程序,確定要在image中包含jdk;好比Python的程序,確定要在image中包含對應版本的Python解釋器。程序在我這跑得好好的,去你那就不行了,顯然是環境問題。Docker把整個運行時環境打包放到image中,因此搞定了環境依賴問題!
:Docker解決了運行環境和配置問題,方便發佈,也就方便作持續集成。代碼 + 運行環境 + 配置 + 依賴的服務,Docker image中包含了運行環境+配置,這對部署至關友好
2.更輕量的虛擬化,節省了虛擬機的性能損耗
3.構建Docker鏡像應該遵循哪些原則?java

總體遠側上,儘可能保持鏡像功能的明確和內容的精簡,要點包括: linux

儘可能選取知足需求但較小的基礎系統鏡像,建議選擇debian:wheezy鏡像,僅有86MB大小

清理編譯生成文件、安裝包的緩存等臨時文件

安裝各個軟件時候要指定準確的版本號,並避免引入不須要的依賴

從安全的角度考慮,應用盡可能使用系統的庫和依賴

使用Dockerfile建立鏡像時候要添加.dockerignore文件或使用乾淨的工做目錄

4.如何控制容器佔用系統資源(CPU,內存)的份額
在使用docker create命令建立容器或使用docker run 建立並運行容器的時候,能夠使用-c|–cpu-shares[=0]參數來調整同期使用CPU的權重,使用-m|–memory參數來調整容器使用內存的大小。
5.Docker的默認存放位置是/var/lib/docker,若是但願將Docker的本地文件存儲到其餘分區,能夠使用Linux軟鏈接的方式來作。
6.Docker的配置文件放在那裏。如何修改配置
Ubuntu系統下Docker的配置文件是/etc/default/docker,CentOS系統配置文件存放在/etc/sysconfig/docker
7.Docker與LXC(Linux Container)有何不一樣
LXC利用Linux上相關技術實現容器,Docker則在以下的幾個方面進行了改進:nginx

移植性:經過抽象容器配置,容器能夠實現一個平臺移植到另外一個平臺;
鏡像系統:基於AUFS的鏡像系統爲容器的分發帶來了不少的便利,同時共同的鏡像層只須要存儲一份,實現高效率的存儲;
版本管理:相似於GIT的版本管理理念,用戶能夠更方面的建立、管理鏡像文件;
倉庫系統:倉庫系統大大下降了鏡像的分發和管理的成本;
周邊工具:各類現有的工具(配置管理、雲平臺)對Docker的支持,以及基於Docker的Pass、CI等系統,讓Docker的應用更加方便和多
2、docker 的常規命令
安裝 docker
yum clean all
yum install -y docker-engine docker-engine-selinuxdocker

設置開機啓動,啓動 docker 服務
systemctl enable docker
systemctl start dockercentos

系統剛剛配置完是沒有鏡像的
查看系統鏡像
docker images緩存

從官方源搜索鏡像
docker search busybox安全

下載鏡像
docker pull busybox
網上直接下載鏡像
上傳鏡像
docker push busyboxbash

把本地的鏡像備份爲 tar 包
docker save busybox(已經存在的鏡像名) >busybox.taride

把備份的tar包導入到本機鏡像
docker load <busybox.tar工具

練習導入鏡像

一、查看容器
docker ps

二、建立一個 bash 交互的容器
docker run -it centos /bin/bash

三、建立一個非交互的容器
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)

相關文章
相關標籤/搜索