SpringCloud-基础设施即服务day4-Docker中

镜像构建上下文
如果注意,会看到docker build 命令后面会有一个点,表示当前目录,其实这是指定上下文路径
什么是上下文路径
首先我们需要理解docker的工作原理,Docker在运行时候分为Docker引擎(服务端的守护进程)和客户端工具,docker引擎提供了一组restAPi ,而如docker命令这样的客户端工具,则是通过这组api与docker进行引擎交互,因此虽然表面上我们好像是在本机执行各种docker功能,但实际上一切都是使用远程调用的型式在客户端完成,也是因为这种c/s架构让我们操作远程服务器的docker引擎变得容易
当我们用进行镜像构建时候,并非所有的镜像都通过run指令完成,经常会需要将一些本地文件复制到镜像,比如通过copy指令,而docker build命令构建镜像其实并非在本地构建,而是在服务端,也就是在docker引擎中间构建的,那么在这一种客户端/服务端的架构中,怎么才可以让服务端获到本地文件???
这样就引入了上下文的概念,当构建的时候,用户会指定构建上下文路径,docker build命令得知这个路径之后,会将路径下面的所有内容打包,然后上传给docker引擎,这样docker引擎收到这个上下文包后,展开就会获取到构建镜像所需要的一切文件
在这里插入图片描述

Docker指令详解
格式 COPY <源路径> 。。。<目标路径>
-P随机端口
ADD
更加高级的复制文件,ADD和Copy的格式和性质基本一致,但是在copy基础上面增加了一些功能,比如<原路径>可以是url,Docker引擎会试图去下载这个连接的文件放在<目标路径>下去,下载的文件权限自动设置为600
EXPOSE 暴露端口
修改tomcat端口号
docker run -p 8080:8080 tomcat
(第一个8080为宿主机的端口,第二8080映射的容器端口)
EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明在运行时并不会因为声明应用就会开启这个端口的服务,在Dockerfile中写入这样的声明有两个好处,一个是 帮助镜像使用者理解这个镜像服务的守护端口,也就是docker run -P时,会自动映射EXPOSE的端口
CMD
Docker守护进程
docker restart 容器id 重启停止的容器,也可以是容器名字,使用docker run -p 8080:8080 --name tomcat …自定义容器名字
以守护态运行 需要docker在后太运行,而不是直接吧执行命令输出在当前宿主机下面
docker run -p 8080:8080 --name tomcat -d tomcat 以守护态运行tomcat
Docker数据卷
数据卷是一个可供一个或者多个容器使用的特殊目录,它绕过ufs,可以提供很多有用的特性:
数据卷可以在容器之间共享和重用
对数据卷的修改会立马生效
对数据卷的更新不会影响镜像
数据卷默认一直存在,即使容器会被删除
/usr/local/tomcat/webapps/ROOT

Docker部署数据库

docker pull mysql:5.7.22
docker run -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/dockerb/mysql -e MYSQL_ROOT_PASSWORD=123 -d   mysql:5.7.22

max_allowed_packet = 16M
项目的容器化部署

发布了34 篇原创文章 · 获赞 19 · 访问量 1483

猜你喜欢

转载自blog.csdn.net/qq_42236003/article/details/93376313