Docker

目录

Docker

一:初识Docker

docker概念

Docker架构

二:Docker命令

Docker进程相关命令

Docker 镜像相关命令

Docker容器相关命令

三:Docker容器数据卷

Docker的数据卷

配置数据卷

eg:

数据卷容器

配置数据卷容器

eg:

数据卷小结

四:Docker应用部署

MySQL部署

Tomcat部署

五:Dockerfile

Docker镜像原理

镜像制作:

1.容器转化为镜像(了解即可)

Dockerfile案例-发布SprinBoot项目:

Dockerfile案例-自定义Centos:

六:Docker compose

服务编排

七:Docker私有仓库的使用

步骤演示:

(1) 创建一个私有仓库

(2)将镜像上传到私有仓库

(3) 从私有仓库中拉取镜像

八:Docker容器虚拟化与传统虚拟机比较

九:部署一个镜像容器的流程【实用 重要】


Docker

一:初识Docker

Docker_第1张图片

docker概念

docker是一种容器技术,它解决了软件跨环境迁移的问题

Docker_第2张图片

Docker架构

Docker_第3张图片

二:Docker命令

Docker进程相关命令

Docker_第4张图片

Docker 镜像相关命令

Docker_第5张图片

eg:

Docker_第6张图片

Docker_第7张图片

删除镜像也可以使用命令:docker rmi REPOSITORY值:TAG值

镜像的id号即是IMAGE ID

Docker容器相关命令

eg:

Docker_第8张图片

Docker_第9张图片

Docker_第10张图片

Docker_第11张图片

Docker_第12张图片

Docker_第13张图片

Docker_第14张图片

三:Docker容器数据卷

Docker的数据卷

数据卷即是宿主机中创建的目录,和容器是一个等级的。

Docker_第15张图片

分析思考的三个问题:

(1) Docker 容器删除之后,在容器中的数据就丢失了,但是我们可以使用数据卷进行保留一份容器中的数据,这样就等效于我们还有一份

容器的数据

(2) Docker容器不可以和外部机器进行交互,但是容器对应的其宿主机是可以和外部机器交互作用的:

Docker_第16张图片

(3) 容器之间需要进行数据交互?

多个容器之间可以进行数据交互,当多个容器进行挂载同一个数据卷的时候,就可以实现各个容器中的数据是互通的 !达成了数据交互

的情况 。那么一个容器修改数据,那么数据卷中的数据立即变化,那么另外一个挂载的容器中的数据也会随之变化,这就是容器之间的

数据交互情况 !

配置数据卷

Docker_第17张图片

eg:

窗口1:

解释图中的文字:宿主机目录即是数据卷,和容器是一个等级的。容器内目录 即是进入容器后的文件目录

Docker_第18张图片

窗口2:

Docker_第19张图片

窗口1:

Docker_第20张图片

窗口2:

即使容器c1被删除 但是之前挂载在c1上的数据卷交互得到的数据依旧还是存在的 !

窗口1:

Docker_第21张图片

Docker_第22张图片

Docker_第23张图片

数据卷容器

Docker_第24张图片

配置数据卷容器

Docker_第25张图片

eg:

容器1:

Docker_第26张图片

窗口2:

Docker_第27张图片

Docker_第28张图片

窗口1:

验证上一张图的②:

Docker_第29张图片

数据卷小结

1.数据卷概念:宿主机的一个目录或文件

2.数据卷作用:

使容器数据持久化不丢失

客户端和容器数据交换

容器之间数据交换

3.数据卷容器:

创建一个容器,挂载一个数据卷(即是宿主机的一个目录或文件),让其他容器继承该容器

通过简单方式实现数据卷配置

四:Docker应用部署

MySQL部署

Docker_第30张图片

Docker_第31张图片

Tomcat部署

Docker_第32张图片

具体步骤见文档:docker应用部署

五:Dockerfile

Docker镜像原理

Docker_第33张图片

Docker_第34张图片

Docker_第35张图片

三个问题:

Docker_第36张图片

镜像制作:

1.容器转化为镜像(了解即可)

Docker_第37张图片

eg1:(了解即可)

Docker_第38张图片

Docker_第39张图片

eg2:(了解即可)

Docker_第40张图片

Docker_第41张图片

Dockerfile案例-发布SprinBoot项目:

Docker_第42张图片

案例演示:

(1)

Docker_第43张图片

Docker_第44张图片

(2)

Docker_第45张图片

(3)

Docker_第46张图片

(4)

Docker_第47张图片

通过名称app 进行运行该项目,并且指定端口号映射,暴露给外界 供外界访问的端口号为9000

Dockerfile案例-自定义Centos:

Docker_第48张图片

eg:

Docker_第49张图片

接下来进行自定义一个Centos:

(1) 创建文件目录 并且创建文件进行修改

Docker_第50张图片

Docker_第51张图片

(2) 进行创建自定义centos,名字为:leomessi_centos,id号为1 版本号默认为latest

Docker_第52张图片

Docker_第53张图片

六:Docker compose

服务编排

Docker_第54张图片

Docker_第55张图片

步骤演示:

(1)

Docker_第56张图片

(2)

七:Docker私有仓库的使用

步骤演示:

(1) 创建一个私有仓库

# 1、拉取私有仓库镜像 
docker pull registry
# 2、启动私有仓库容器 
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json   
vim /etc/docker/daemon.json   

5."insecure-registries":["私有仓库服务器ip:5000"] 把这句话加入到配置文件中

Docker_第57张图片

6.

# 重启docker 服务 
systemctl restart docker
#重启私有仓库的镜像
docker start registry

(2)将镜像上传到私有仓库

# 1、标记镜像为私有仓库的镜像     
docker tag centos:7 私有仓库服务器IP:5000/centos:7
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:5000/centos:7

(3) 从私有仓库中拉取镜像

Docker_第58张图片

八:Docker容器虚拟化与传统虚拟机比较

Docker_第59张图片

Docker_第60张图片

九:部署一个镜像容器的流程【实用 重要】

1.搜索redis镜像

docker search redis

2.拉取redis镜像 如果不指定版本号 默认使用最新的版本号latest

docker pull redis:5.0

3.创建容器,设置端口映射 (一般都使用默认端口号 映射的适合其实就是互相映射默认的端口号即可)

docker run -id --name=c_redis -p 6379:6379 redis:5.0

4.使用外部机器连接redis

Docker_第61张图片

5.但是过了一段时间之后,该镜像对应的容器自动停止了 这时候该怎么办?

Docker_第62张图片

第一步:查看redis对应容器的名称

Docker_第63张图片

第二步:利用容器的名称进行启动对应的容器

docker start c_redis

连接成功:

Docker_第64张图片

你可能感兴趣的:(微服务分布式,docker,容器,运维)