Docker入門
引言(centos7.x環(huán)境下安裝docker)
Docker官方建議在Ubuntu中安裝,因?yàn)镈ocker是基于Ubuntu發(fā)布的,而且一般Docker出現(xiàn)的問題Ubuntu是最先更新或者打補(bǔ)丁的爆惧。在很多版本的CentOS中是不支持更新最新的一些補(bǔ)丁包的。
由于我們學(xué)習(xí)的環(huán)境都使用的是CentOS锨能,因此這里我們將Docker安裝到CentOS上扯再。注意:這里建議安裝在CentOS7.x以上的版本,在CentOS6.x的版本中址遇,安裝前需要安裝其他很多的環(huán)境而且Docker很多補(bǔ)丁不支持更新
安裝:(centos7.0)
yum install docker
查看安裝的Docker版本
docker -v
啟動(dòng)與停止docker
啟動(dòng)docker:systemctl start docker
停止docker:systemctl stop docker
重啟docker:systemctl restart docker
查看docker狀態(tài):systemctl status docker
開機(jī)啟動(dòng):systemctl enable docker
查看docker概要信息:docker info
查看docker幫助文檔:docker --help
列出鏡像
docker images
REPOSITORY:鏡像所在的倉庫名稱
TAG:鏡像標(biāo)簽
IMAGE ID:鏡像ID
CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)
SIZE:鏡像大小
這些鏡像都是存儲(chǔ)在Docker宿主機(jī)的/var/lib/docker目錄下
搜索鏡像
如果你需要從網(wǎng)絡(luò)中查找需要的鏡像熄阻,可以通過以下命令搜索
docker search 鏡像名稱
NAME:倉庫名稱
DESCRIPTION:鏡像描述
STARS:用戶評(píng)價(jià),反應(yīng)一個(gè)鏡像的受歡迎程度
OFFICIAL:是否官方
AUTOMATED:自動(dòng)構(gòu)建倔约,表示該鏡像由Docker Hub自動(dòng)構(gòu)建流程創(chuàng)建的
拉取鏡像
使用命令拉韧貉场:
docker pull centos:7
目前國內(nèi)訪問docker hub速度上有點(diǎn)尷尬,使用docker Mirror勢(shì)在必行〗#現(xiàn)有國內(nèi)提供docker鏡像加速服務(wù)的商家有不少钾军,下面重點(diǎn)ustc鏡像。
ustc的鏡像
ustc是老牌的linux鏡像服務(wù)提供者了绢要,還在遙遠(yuǎn)的ubuntu 5.04版本的時(shí)候就在
用吏恭。ustc的docker鏡像加速器速度很快。ustc docker mirror的優(yōu)勢(shì)之一就是
不需要注冊(cè)袖扛,是真正的公共服務(wù)砸泛。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
步驟:
(1)編輯該文件:vi /etc/docker/daemon.json // 如果該文件不存在就手動(dòng)創(chuàng)建十籍;說明:在centos7.x下,通過vi唇礁。
(2)在該文件中輸入如下內(nèi)容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
(3)注意:一定要重啟docker服務(wù)勾栗,如果重啟docker后無法加速,可以重新啟動(dòng)OS
然后通過docker pull命令下載鏡像:速度杠杠的
刪除鏡像
1盏筐、 docker rmi $IMAGE_ID:刪除指定鏡像
2围俘、 docker rmi docker images -q
:刪除所有鏡像
Docker容器操作
查看容器
查看正在運(yùn)行容器:
docker ps
查看所有的容器(啟動(dòng)過的歷史容器):
docker ps –a
查看最后一次運(yùn)行的容器:
docker ps –l
查看停止的容器
docker ps -f status=exited
創(chuàng)建與啟動(dòng)容器
創(chuàng)建容器常用的參數(shù)說明:
創(chuàng)建容器命令:docker run
-i:表示運(yùn)行容器
-t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后琢融,容器創(chuàng)建就能登錄進(jìn)去界牡。即分配一個(gè)偽終端。
--name :為創(chuàng)建的容器命名漾抬。
-v:表示目錄映射關(guān)系(前者是宿主機(jī)目錄宿亡,后者是映射到宿主機(jī)上的目錄),可以使用多個(gè)-v做多個(gè)目錄或文件映射纳令。注意:最好做目錄映射挽荠,在宿主機(jī)上做修改,然后共享到容器上平绩。
-d:在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不會(huì)自動(dòng)登錄容器圈匆,如果只加-i -t兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)捏雌。
-p:表示端口映射跃赚,前者是宿主機(jī)端口,后者是容器內(nèi)的映射端口性湿∥嘲粒可以使用多個(gè)-p做多個(gè)端口映射
交互式容器
創(chuàng)建一個(gè)交互式容器并取名為mycentos
docker run -it --name=mycentos centos:7 /bin/bash
這時(shí)我們通過ps命令查看,發(fā)現(xiàn)可以看到啟動(dòng)的容器窘奏,狀態(tài)為啟動(dòng)狀態(tài)
使用exit命令 退出當(dāng)前容器
然后用ps -a 命令查看發(fā)現(xiàn)該容器也隨之停止:
守護(hù)式容器
創(chuàng)建一個(gè)守護(hù)式容器:如果對(duì)于一個(gè)需要長期運(yùn)行的容器來說嘹锁,我們可以創(chuàng)建一個(gè)守護(hù)式容器。命令如下(容器名稱不能重復(fù)):
docker run -di --name=mycentos2 centos:7
登錄守護(hù)式容器方式:
docker exec -it container_name (或者 container_id) /bin/bash(exit退出時(shí)着裹,容器不會(huì)停止)
停止與啟動(dòng)容器
停止正在運(yùn)行的容器:
docker stop $CONTAINER_NAME/ID
啟動(dòng)已運(yùn)行過的容器:
docker start $CONTAINER_NAME/ID
文件拷貝
如果我們需要將文件拷貝到容器內(nèi)可以使用cp命令
docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄
也可以將文件從容器內(nèi)拷貝出來
docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄
目錄掛載
我們可以在創(chuàng)建容器的時(shí)候领猾,將宿主機(jī)的目錄與容器內(nèi)的目錄進(jìn)行映射,這樣我們就可以通過修改宿主機(jī)某個(gè)目錄的文件從而去影響容器骇扇。
創(chuàng)建容器 添加-v參數(shù) 后邊為 宿主機(jī)目錄:容器目錄
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos2 centos:7
如果你共享的是多級(jí)的目錄摔竿,可能會(huì)出現(xiàn)權(quán)限不足的提示。
這是因?yàn)镃entOS7中的安全模塊selinux把權(quán)限禁掉了少孝,我們需要添加參數(shù) --privileged=true 來解決掛載的目錄沒有權(quán)限的問題
查看容器IP地址
我們可以通過以下命令查看容器運(yùn)行的各種數(shù)據(jù)
docker inspect mycentos2
也可以直接執(zhí)行下面的命令直接輸出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2
刪除容器
刪除指定的容器:docker rm $CONTAINER_ID/NAME
注意继低,只能刪除停止的容器
刪除所有容器:
docker rm
docker ps -a -q