Docker 是一個開源工具,它可讓建立和管理 Linux 容器變得簡單。容器就像是輕量級的虛擬機,而且能夠以毫秒級的速度來啓動或中止。Docker 幫助系統管理員和程序員在容器中開發應用程序,而且能夠擴展到成千上萬的節點。linux
容器和 VM(虛擬機)的主要區別是,容器提供了基於進程的隔離,而虛擬機提供了資源的徹底隔離。虛擬機可能須要一分鐘來啓動,而容器只須要一秒鐘或更短。容器使用宿主操做系統的內核,而虛擬機使用獨立的內核。程序員
Docker 的侷限性之一是,它只能用在 64 位的操做系統上。redis
在這篇文章中咱們將討論如何在 CentOS 7.x 中安裝 docker。docker
Docker 軟件包已經包括在默認的 CentOS-Extras 軟件源裏。所以想要安裝 docker,只須要運行下面的 yum 命令:ubuntu
安裝完成後,使用下面的命令來啓動 docker 服務,並將其設置爲開機啓動:centos
(LCTT 譯註:此處採用了舊式的 sysv 語法,如採用CentOS 7中支持的新式 systemd 語法,以下:bash
)ssh
下載官方的 CentOS 鏡像到本地 (LCTT 譯註:因爲 Docker 被牆 :-< ,因此請使用 http://docker.cn 的鏡像,感謝 @馬全一 的鏡像。 )工具
確認 CentOS 鏡像已經被獲取:centos7
運行一個 Docker 容器:
咱們能夠看到,CentOS 容器已經被啓動,而且咱們獲得了 bash 提示符。在 docker 命令中咱們使用了 「-i 捕獲標準輸入輸出」和 「-t 分配一個終端或控制檯」選項。若要斷開與容器的鏈接,輸入 exit。
咱們還能夠搜索基於 Fedora 和 Ubuntu 操做系統的容器。
顯示當前正在運行容器的列表
via: http://www.linuxtechi.com/install-docker-on-centos-7/
docker 基本操做命令:
yum -y install docker #若是報錯,解決辦法
docker run 鏡像 apt-get install -y wget #在容器中安裝新的程序(wget)
docker images #查看docker庫中是否已經有鏡像
docker search Ubuntu #查看docker鏡像庫裏有沒有Ubuntu鏡像
docker pull Ubuntu:14.04 #下載標準的Ubuntu 14.04 鏡像
docker tag 鏡像ID 別名 #給下載的鏡像取個別名
docker images #能夠查看是否下載成功
docker ps -a #查看docker環境裏有多少容器
docker start 3a09b2588478 #容器 ID 顯示在列表左側。咱們能夠從新進入容器,不過須要先啓動容器。這裏使用容器 3a09b2588478 做爲示例,你操做時須要使用本身的容器 ID,啓用容器
docker 容器操做:
docker run -d --name 容器名 鏡像 #建立容器
docker stop 容器 #先中止
docker run centos sleep 20& #默認等待10秒鐘再殺死指定容器。可使用-t參數來設置等待時間
docker rm 容器 #再移除
刪除容器:docker rm CONTAINERID
查看全部容器ID:docker ps -a -q
刪除全部的容器:docker rm $(docker ps -a -q)
docker exec -i -t 容器名 bash #進入本身的容器
docker exec -it 容器名 bash #進入本身的容器
docker inspect 容器 #查看容器的ip
docker port 容器名 #查端口
redis-cli -h 另外一個容器ip #在容器裏登錄另外一個容器
docker export 容器名或ID > /home/work/ubuntu.tar #導出docker容器sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
cat ubuntu.tar | docker import - 容器名/ubuntu:v1.0 #導入docker容器sudo docker load --input ubuntu_14.04.tar
docker rm $(docker ps -a -q) #刪除全部中止的容器
docker run -d -p本地端口:容器端口 -v /本地絕對路徑:/容器內絕對路徑 --name容器名 鏡像名 #建立容器
docker ps -a -q | xargs docker rm #能夠刪除全部未運行的容器,docker ps -a -q列出當前運行的容器, -a 會列出全部,包括已中止的, -q 只列出容器 ID。
docker鏡像操做:
docker search NAME #搜索可用的docker鏡像
docker history 鏡像 #查看鏡像的歷史版本
docker push 鏡像 #使用如下命令將鏡像推送到registry
docker commit 作好容器 新建立的鏡像名 #將容器製做成鏡像
docker run --name 容器名 -d -p 17474:22 -v /data/test本地目錄:/home/test容器目錄 -h test 鏡像 #新建容器全
useradd test -d /home/test #新建用戶登錄到指定目錄
apt-get update && apt-get install -y openssh-server #容器裏下載安裝
docker rmi 鏡像名或鏡像ID號 #刪除鏡像,先刪除這個鏡像啓動的容器
一次性刪除全部鏡像: docker rmi $(docker images -q)
doxker save 鏡像名 >/home/work/ubuntu_ssh.tar #將docker鏡像導出
docker load < /home/work/ubuntu_ssh.tar #將本地docker鏡像導入docker環境下