容器数据卷
使用数据卷
//方式一:直接使用命令来挂载 -v
docker run -it -v 主机目录:容器内目录 镜像名
//匿名挂载
docker run -it -v 容器内目录 镜像名
//具名挂载(大多数情况使用这个)
-v 卷名:容器内路径
//查看所有卷(volume)的情况
docker volume ls
//查看某个卷
docker volume inspect 卷名
//删除指定数据卷
docker volume rm 数据卷名称
//创建数据卷
//创建数据卷之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data
docker volume create 数据卷名称
mysql持久化操作
//拉取mysql镜像
docker pull mysql:5.7
//启动容器
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql5.7
初步Dockerfile
Dockerfile就是用来构建docker镜像的构建文件,是一个命令脚本
//创建一个dockerfile文件,名字可以随意,建议Dockerfile
//文件中的内容 指令(大写) 参数
FROM centos
//挂载卷(是匿名挂载),这是容器内部名,主机的在默认位置
VALUME ["volume1","volume2"]
//完成后显示
CMD echo "---------end----------"
//希望默认走的是bash控制台
CMD /bin/bash
数据卷命令
//生成自定义镜像 最后有个点,代表生成在当前目录下
docker build -f Dockerfile -t 生成的镜像名称 .
//多个容器数据共享 子容器数据与父容器数据相同,父容器也被称为数据卷容器
//多继承和多重继承都可
docker run -it --name 子容器名 --volumes-from 父容器名 镜像名
Dockerfile
dockerfile介绍
Dockerfile就是用来构建docker镜像的构建文件,是一个命令脚本
步骤
1.编写一个dockerfile文件
2.docker build 构建称为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像
显示镜像历史:
docker history 镜像名或者镜像编号
dockerfile构建过程
基础要求
- 每个保留关键字(指令)都必须是大写字母
- 从上到下顺序执行
- #表示注释
- 每一个指令都会是一个新的镜像层,并提交
dockerfile命令
FROM //基础镜像,从这里开始构建
MAINTAINER //镜像是谁写的,姓名+邮箱
RUN //镜像构建的时候需要运行的命令,例如:yum -y install vim
ADD //需要添加的其他镜像,例如:Tomcat,mysql
WORKDIR //镜像的工作目录
VOLUME //挂载的目录,挂在卷
EXPOSE //暴露端口配置 类似-p
CMD //指定这个容器启动的时候需要运行的命令,替代命令,只有最后一个生效
ENTRYPOINT //指定这个容器启动的时候要运行的命令,,追加命令
ONBUILD //当构建一个被继承Dockerfile 这个时候就会运行ONBUILD指令,触发指令
COPY //类似ADD,将我们的文件拷贝到镜像中
ENV //构建的时候设置环境变量
Springboot打包docker镜像
Dockerfile文件
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
打包项目并创建镜像
//创建镜像
docker build -t 镜像名 .
//运行容器
docker run -d -P --name 容器名 镜像名