容器化部署工具
镜像
通过容器打镜像(比如某些容器自定义之后就可以通过这种方式打镜像)
镜像仓库
容器
虚拟机和容器的区别与对比
一、linux在线安装docker
只需要一条命令:yum install docker
二、docker命令
拉取镜像
拉取镜像时如果不指定版本,则默认拉取最新版本;
镜像源配置,可以使用国内的比如腾讯、阿里、网易云等,个人感觉腾讯的比较快一点;
列出镜像
删除镜像
-f 为强制删除;
可以通过镜像ID和镜像名(没歧义时)删除镜像
容器
创建容器并启动
退出后关闭容器;
后台启动,退出后不关闭容器;
停止容器、启动容器(不是创建启动)
start是后台启动;
文件拷贝时,要保证容器启动,
文件的拷贝要在宿主机上拷贝;
挂载
必须在创建容器是映射,如果已经创建完容器则没有办法再创建映射;
查看ip
宿主机于容器ip之间是可以ping通的,
删除容器
当然如果容器在运行中,也是可以强制删除
docker rm -f 容器ID;
常用容器启动
如果远程访问失败,
1、可能是端口没有开启
2、宿主机防火墙的问题,需要关闭防火墙或者开放端口
3、mysql镜像版本过高需要手动开启远程访问,具体如下
redis
dockerfile
dockerfile样例
指令区分大小写,
上图中错误修改:ADD 可以解压,COPY不能解压;
通过dockerfile构建镜像;
-f 为dockerfile地址,或者-f可以省略但dockerfile的名称必须为dockerfile
CMD可以有多个,但会被覆盖,最后一个生效;--容器启动时执行;
有些CMD /bin/bash :是容器启动后光标所在位置,其中/bin/bash是启动后进入控制台(命令终端)
docker部署springboot项目
第一种:手动部署:
1、将springboot项目打成jar;
2、将jar放到linux目录
3、创建dockerfile文件(要和jar放到同一个目录下)
4、构建镜像(docker build -t 容器名称 -f dackerfile名称)注如果dockerfile的名称为Dockerfile则-f可以省略,如果为其他名称则需要带上;
备:docker logs id 查看容器日志
编写dockerfile
注:ADD 对jar重命名时,不要出现中文,并且不要大写(项目中pom文件中的artifactId也不要用大写)
构建镜像
第二种:一键部署
第二部:idea添加docker插件
第三部:pom文件修改添加配置(dockerfile文件可以用idea中的docker插件自动生成)用于生成dockerfile文件
可以百度一个
问题:
文件拷贝可以从容器中执行吗?双向。
通过dockerfile构建镜像时,最后如果有多个CMD时,在构建的过程中会如果CMD为打印信息则会执行?--应该只是打印在构建过程中,构建的数据而不是打印;