瀏覽量:66次
關(guān)于 Docker 的一些概念和操作,我爭取這一篇博客說完。下面正文開始。
Docker 鏡像與容器說到 Docker ,你會(huì)常遇到兩個(gè)內(nèi)容:image 和 container (即鏡像和容器) 關(guān)于鏡像和容器,你可以這樣來理解:鏡像是構(gòu)建 Docker 的基石,用戶基于鏡像來運(yùn)行自己的容器。或者說,鏡像是 Docker 生命周期中的構(gòu)建或打包階段,而容器則是啟動(dòng)或是執(zhí)行階段。好吧,說的再明白點(diǎn)兒,就是有了鏡像,才有的容器。容器是在鏡像的基礎(chǔ)上,才有的。
Docker 安裝以前寫過,這里就不贅述了,直接上鏈接:需要科學(xué)上網(wǎng)的安裝方法:[Docker]CentOS7下Docker安裝教程不需要科學(xué)上網(wǎng)的安裝方法:[Docker]CentOS7通過rpm包安裝Docker
Docker 相關(guān)命令Docker 操作相關(guān)命令:systemctl start docker啟動(dòng) dockersystemctl status docker查看 docker 狀態(tài)systemctl stop docker停止 dockersystemctl enable docker開機(jī)自啟docker info 查看 docker 概要信息docker --help查看 docker 幫助文檔鏡像相關(guān)命令:查看鏡像命令:
docker images搜索鏡像:
docker search 鏡像名稱拉取鏡像:[Docker]Docker拉取,上傳鏡像到Harbor倉庫刪除鏡像:[Docker]如何批量刪除鏡像
容器相關(guān)命令:查看容器:查看正在運(yùn)行的容器:
docker ps查看所有容器:
docker ps -a查看最后一次運(yùn)行的容器:
docker ps -l查看停止的容器:
docker ps -f status=exited創(chuàng)建容器:
docker run可以在 run 后面加參數(shù)。其中:
-i 表示運(yùn)行容器-t 表示容器啟動(dòng)后進(jìn)入其命令行--name 為創(chuàng)建的容器命名-v 表示目錄映射關(guān)系(前者是宿主機(jī)目錄,后者是映射到宿主機(jī)上的目錄)-d 在 run 后面加上 -d 參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行-p 表示端口映射,前者是宿主機(jī)端口,后者是容器內(nèi)的映射端口交互式方式創(chuàng)建容器
docker run -it --name=容器名稱 鏡像名稱:標(biāo)簽 /bin/bash守護(hù)式方式創(chuàng)建容器
docker run -di --name=容器名稱 鏡像名稱:標(biāo)簽登錄守護(hù)式容器方式
docker exec -it 容器名稱(或容器 ID) /bin/bash啟動(dòng)容器:
docker start 容器名稱(或容器 ID)停止容器:
docker stop 容器名稱(或容器 ID)文件拷貝:將文件拷貝到容器內(nèi)
docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄將文件從容器內(nèi)拷貝出來
docker cp 容器名稱:容器目錄需要拷貝的文件或目錄目錄掛載:在創(chuàng)建容器時(shí),將宿主機(jī)的目錄與容器內(nèi)的目錄進(jìn)行映射,這樣可以通過修改宿主機(jī)某個(gè)目錄的文件從而去影響容器 創(chuàng)建容器 添加 -v 參數(shù) 后邊為 宿主機(jī)目錄:容器目錄,完整命令:
docker run -v 宿主機(jī)目錄:容器目錄如果共享的是多級目錄,可能會(huì)出現(xiàn)權(quán)限不足的情況 可以通過添加參數(shù) --privileged=true 來解決,因?yàn)?CentOS7 中安全模塊將 selinux 權(quán)限禁掉了,添加此參數(shù),可以將問題解決。
查看容器 IP:docker inspect 容器名稱(容器 ID )也可以直接輸出 IP 地址:
docker inspect --format='{{NetworkSetting。IPAddress}}' 容器名稱(容器 ID)刪除容器docker rm 容器名稱(容器 ID)常見的應(yīng)用部署MySQL 部署:1 ,拉取鏡像:
docker pull centos/mysql-57-centos72 ,創(chuàng)建容器:
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7其中:-p 代表端口映射,格式為 宿主機(jī)映射端口:容器運(yùn)行端口 -e 代表添加環(huán)境變量 MYSQL_ROOT_PASSWORD 是 root 用戶的登錄密碼 3 ,進(jìn)入 mysql 容器:
docker exec -it mysql /bin/bash4 ,登錄 mysql :
mysql -u root -ptomcat 部署:1 ,拉取鏡像
docker pull tomcat:7-jre72 ,創(chuàng)建容器
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/webapps tomcat:7-jre7Nginx 部署:1 ,拉取鏡像
docker pull nginx2 ,創(chuàng)建 nginx 容器
docker run -di --name=mynginx -p 80:80 nginxRedis 部署:1 ,拉取鏡像
docker pull redis2 ,創(chuàng)建 redis 容器
docker run -di --name=myredis -p 6379:6379 redis遷移與備份容器保存為鏡像:
docker commit 容器名稱 鏡像名稱例:
docker commit mynginx mynginx_i將鏡像保存為 tar 文件,例:
docker save -o mynginx。tar mynginx_i鏡像恢復(fù)與遷移:-i 輸入的文件,例:
docker load -i mynginx。tarDockerfileDockerfile 是由一系列命令和參數(shù)構(gòu)成的腳本,基于基礎(chǔ)鏡像,最終創(chuàng)建一個(gè)新的鏡像,常用命令有:
FROM image_name:tag 定義了使用哪兒個(gè)基礎(chǔ)鏡像啟動(dòng)構(gòu)建流程MAINTAINER user_name聲明鏡像的創(chuàng)建者ENV key value設(shè)置環(huán)境變量(可以寫多條)RUN command 是 Dockerfile 的核心部分(可以寫多條)ADD source_dir/file dest_dir/file 將宿主機(jī)的文件復(fù)制到容器內(nèi),如果是一個(gè)壓縮文件,將會(huì)在復(fù)制后自動(dòng)解壓COPY source_dir/file dest_dir/file 和 ADD 相似,但是如果有壓縮文件并不能解壓WORDIR path_dir 設(shè)置工作目錄需要注意一下,如果要使用 Dockerfile 文件,名字必須為「Dockerfile」,否則里面的命令不會(huì)有效。
鏡像上傳下載到鏡像倉庫以前寫過博客,感覺還是比較詳細(xì)的:[Docker]Docker拉取,上傳鏡像到Harbor倉庫(在上面應(yīng)該也看到過了,再放一次)
關(guān)于 Docker 入門,我只能幫你到這兒了~
最后,我想重復(fù)一句話:選擇和一群優(yōu)秀的人一起成長,你成長的速度絕對會(huì)不一樣!
歡迎轉(zhuǎn)發(fā)到朋友圈
歡迎留言
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776