Docker是一個能夠把開發的應用程序自動部署到容器的開源引擎,基於客戶端-服務器架構c/s,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker
由下面這些組成:
1. Docker
服務器守護程序(server daemon),用於管理所有的容器。
2. Docker
命令行客戶端,用於控制服務器守護程序。
3. Docker
鏡像:查找和瀏覽 docker
容器鏡像。
準備工作:
1.下載VM和centos7鏡像
2.安裝centos7
3.cd 進入vi /etc/sysconfig/network-scripts/ifcfg-eno**** 修改ip地址
4.onboot 改爲 yes
在最後一行添加:
IPADDR=自己主機ipv6地址
GATWAY=自己主機的網關地址
修改完成後重啓網絡
service network restart
5.安裝ifconfig功能
yum install net-tools.x86_64
6.xshell連接vm下的centos
開始安裝Docker:
1.下載docker(可以省略)
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2.安裝docker
yum -y install docker-io
3.啓動docker
service docker start
4.將docker加入開機啓動
chkconfig docker on
基本信息查看
docker version:查看docker的版本號,包括客戶端、服務端、依賴的Go等
docker info :查看系統(docker)層面信息,包括管理的images, containers數等
鏡像的獲取與容器的使用
鏡像可以看作是包含有某些軟件的容器系統,比如centos就是一個官方的基礎鏡像,很多鏡像都是基於這個鏡像“衍生”,該鏡像包含基本的centos系統
(1)搜索可用的centos的docker鏡像
docker search <image>:在docker index中搜索image
docker search centos
這樣就可以搜索出在Docker Hub上所有帶centos的公共的可用鏡像
(2)下載centos鏡像(拉取鏡像)
docker pull centos:latest
查看鏡像
docker images: 列出images
docker images -a :列出所有的images(包含歷史)
docker images --tree :顯示鏡像的所有層(layer)
docker rmi <image ID>: 刪除一個或多個image
(3)啓動一個容器
docker run -it centos /bin/bash
Docker允許啓動一個僞tty終端,使用交互運行的方式啓動一個容器,所用到的參數爲:-t -i
centos爲基礎鏡像,首先Docker會檢查本地是否有centos鏡像,如果沒有就會連接官方維護的Docker Hub Regustry查看,一旦有就會下載該鏡像並將其保存在本地宿主機中。
容器命名(名稱必須唯一)
用上述方法啓動容器,Docker會爲我們創建的每一個容器自動生成一個隨機的名字,如果想自己命名,可以用--name標誌來實現。
sudo docker run --name Luffy -it centos /bin/bash
查看容器
docker ps :列出當前所有正在運行的container
docker ps -l
:列出最近一次啓動的container
docker ps -a :列出所有的container(包含歷史,即運行過的container)
docker ps -q :列出最近一次運行的container
ID
退出
exit
輸入exit就可以返回到centos宿主機的命令行提示符了,一旦退出容器,/bin/bash命令也就結束了,容器也隨之停止了運行。
再次啓動容器
docker start/stop/restart <container> :開啓/停止/重啓container
docker start [container_id]
:再次運行某個container
(包括歷史container)
docker run -i -t <image> /bin/bash
:使用image創建container並進入交互模式, login
shell是/bin/bash
docker run -i -t -p <host_port:contain_port> :映射 HOST
端口到容器,方便外部訪問容器內服務,host_port
可以省略,省略表示把 container_port
映射到一個動態端口。
注:使用start是啓動已經創建過得container,使用run則通過image開啓一個新的container。
刪除容器
docker rm <container...>
:刪除一個或多個container
docker rm `docker ps -a -q` :刪除所有的container
docker ps -a -q | xargs docker rm
:同上,
刪除所有的container
進入容器
docker attach ****(容器ID或名)
連接一個正在運行的container實例(即實例必須爲start狀態,可以多個窗口同時attach 一個container實例)容器的主機名就是該容器的ID
查看ip主機配置