一:首先來(lái)理解三個(gè)名詞解釋:
1、鏡像(image)Docker 鏡像(Image)就是一個(gè)只讀的模板。例如:一個(gè)鏡像可以包含一個(gè)完整的操作系統(tǒng)環(huán)境,里面僅安裝了 Apache 或用戶(hù)需要的其它應(yīng)用程序。鏡像可以用來(lái)創(chuàng)建 Docker 容器,一個(gè)鏡像可以創(chuàng)建很多容器。
2、倉(cāng)庫(kù)(repository)倉(cāng)庫(kù)(Repository)是集中存放鏡像文件的場(chǎng)所。
3、容器(container)Docker 利用容器(Container)來(lái)運(yùn)行應(yīng)用。容器是從鏡像(Image)創(chuàng)建的運(yùn)行實(shí)例。
二:常用的命令集合如下:
容器生命周期管理 — docker [run|start|stop|restart|kill|rm|pause|unpause|create]
容器操作運(yùn)維 — docker[ps|exec|inspect|top|attach|events|logs|wait|export|import|port]
容器rootfs命令 — docker [commit|cp|diff]
本地鏡像管理 — docker [images|rmi|tag|build|history|save]
鏡像倉(cāng)庫(kù) — docker [login|pull|push|search]
其他命令 — docker [info|version]
詳細(xì)命令說(shuō)明如下:
在后臺(tái)啟動(dòng)一個(gè)容器
docker run -d –name alias-Name imageName
啟動(dòng)容器
docker start Name/ID
停止容器
docker stop Name/ID
重啟容器
docker restart Name/ID
殺死一個(gè)運(yùn)行的容器
docker kill -s KILL Name/ID
刪除容器
docker rm /rm -f Name/ID
停止容器
docker pause Name/ID
恢復(fù)容器
docker unpause Name/ID
只創(chuàng)建容器但不啟動(dòng)
docker create –name CONTAINER_Name imageName
查看運(yùn)行的容器
docker ps / docker ps -a
進(jìn)行一個(gè)運(yùn)行中的容器,開(kāi)啟一個(gè)新的終端
docker exec -it CONTAINER_ID /bin/bash
進(jìn)行一個(gè)運(yùn)行中的容器,不開(kāi)啟一個(gè)新的終端
docker attach CONTAINER_ID
查看容器的相關(guān)信息
docker inspect CONTAINER_Name
查看容器里面的進(jìn)程
docker top CONTAINER_Name
時(shí)間戳=2016年7月1日后的相關(guān)事件
docker events -f “image”=”imageName” –since=”1467302400″
查看容器的日志輸出
docker logs CONTAINER_Name
阻塞運(yùn)行直到容器停止,然后打印出它的退出代碼
docker wait CONTAINER_Name
將容器進(jìn)行打包保存到本地,文件類(lèi)型為tar
docker export -o test.tar CONTAINER_ID
將上面保存的文件導(dǎo)入到鏡像庫(kù)中
cat test.tar |docker import – image_name:tag
查看容器的端口映射情況
docker port CONTAINER_ID
commit 從容器中創(chuàng)建一個(gè)新的鏡像
docker commit -a “tony test” -m “my mysql” CONTAINER_ID mymysql:v1docker images mymysql:v1
cp 在使用的過(guò)程中會(huì)進(jìn)行多個(gè)主機(jī)與容器之間的數(shù)據(jù)交換
docker cp /ruiqi/content CONTAINER_ID:/ruiqi/
diff 用來(lái)檢查容器里面文件結(jié)構(gòu)的更改
docker diff CONTAINER_ID
查看本地的鏡像,-a 表示是所有的鏡像
docker images /docker images -a
刪除鏡像
docker rmi -f image_name
docker tag mysql:v5.6 mysql:v5.7
構(gòu)建一個(gè)鏡像
docker build -t runoob/ubuntu:v1 .
查看當(dāng)前這個(gè)鏡像的歷史信息
docker history image_name
將當(dāng)前的鏡像保存到本地的一個(gè)tar 類(lèi)型的文件
docker save -o TestFlask.tar TestFlask:v3
登錄鏡像倉(cāng)庫(kù)
docker login
從鏡像倉(cāng)庫(kù)中拉鏡像
docker pull
向鏡像倉(cāng)庫(kù)推本地的鏡像文件
docker push
檢索鏡像內(nèi)容
docker search
三:利用dockerfile 制作一個(gè)tomcat 運(yùn)行image:
文件內(nèi)容如下
[root@localhost common]# more Dockerfile.tomcat FROM daocloud.io/centos:7 COPY jdk-8u144-linux-x64.rpm /opt/jdk-8u144-linux-x64.rpm RUN [“rpm”,”-ivh”,”/opt/jdk-8u144-linux-x64.rpm”] COPY security /usr/java/jdk1.8.0_144/jre/security COPY certs /etc/pki/tls/certs COPY tomcat /opt/tomcat RUN [“ln”,”-s”,”/opt/tomcat”,”/usr/local/tomcat”]