一、 镜像
1. 提交镜像
docker commit
2. 镜像特点
二、 容器数据卷
1. 什么是数据卷
总结一句话:容器的同步和持久化操作,容器间数据也是可以共享的
2. 使用数据卷
1) 使用命令挂载 -v
docker run -it -v 主机目录:容器目录 镜像名 /bin/bash
测试
2) 安装mysql:
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 # 设置环境,将myqsl的root账户的密码设置为123456
--name mysql01 mysql:5.7
删除容器,挂载的数据没有丢失
3. 具名挂载和匿名挂载
1) 匿名挂载
docker run -d –name nginx01 -P -v /etc/nginx nginx
2) 具名挂载(推荐使用)
docker run -d -P –name nginx02 -v juming-naginx:/etc/nginx nginx
3) 所有docker容器内的卷,没指定主机目录的情况下都是在/var/lib/docker/volume/xxx/_data
4) 拓展
4. 数据卷容器
docker run -it --name docker01 镜像名 # 启动容器
docker run -it --name docker02 --volumes-from docker01 镜像名 # 同步docker01数据
docker run -it --name docker03 --volumes-from docker01 镜像名 # 同步docker01数据
三、 dockerFile
1. dockerfile是用来构建docker镜像的文件,命令参数脚本
2. 构建步骤
1) 编写一个dockerfile脚本
2) Docker build 构建为一个镜像
3) Docker run运行镜像
4) Docker push 发布镜像到(dockerhub/阿里云镜像仓库)
3. DockerFile指令
4. 实战测试
1) 自己写一个centos镜像
a) 创建文件
vim mydockerfile-centos
b) 编写命令
FROM centos # 以官方centos为基础
MAINTAINER ran<1596145825@qq.com> # 镜像作者和邮箱
ENV MYPATH /usr/local # 设置环境变量
WORKDIR $MYPATH # 设置工作目录
RUN yum -y install vim # 安装vim
RUN yum -y install net-tools # 安装ipconfig相关工具
EXPOSE 80 # 暴露80端口
CMD echo $MYPATH # 打印设置的环境变量
CMD echo “---end---” # 打印end
CMD /bin/bash # 设置命令执行方式
c) 构建镜像
docker build -f mydockerfile-centos -t mycentos:0.1 .
d) 测试运行
e) 列出镜像的变更历史
docker history
2) CMD和ENTRYPOINT区别
a) 区别
b) 测试cmd
c) 测试ENTRYPOINT
四、 Tomcat实战
1. 准备tomcat压缩包,jdk压缩包
将压缩包丢到目录
touch readme.txt
vim dockerfile-tomcat
2. 编写dockerfile文件
FROM centos
MAINTAINER ran<1596145825@qq.com>
COPY readme.txt /usr/local/readme.txt # 复制文件
ADD jdk-8u11-linux-x64.tar.gz /usr/local/ # ADD会自动解压压缩包
ADD apache-tomcat-9.0.22.tar.gz /usr/local/
ENV MYPATH /usr/local # 设置环境变量
WORKDIR $MYPATH # 设置工作目录
RUN yum -y install vim # 安装vim
ENV JAVA_HOME /usr/local/jdk.1.8.0_11
ENV CLASS_PATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache- tomcat-9.0.22
ENV CATALINA_BASE /usr/local/apache- tomcat-9.0.22
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME:/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/ apache-tomcat-9.0.22/bin/start.sh && tail -F /usr/local/ apache-tomcat-9.0.22/bin/logs/catalina.out # 启动tomcat并打印日志
3. 构建镜像
docker build -f dockerfile-tomcat diytomcat .
4. 启动镜像
docker run -it --name mytomcat
-p 9090:8080
-v /home/tomcat/test:/usr/local/ apache-tomcat-9.0.22/webapps/test
-v /home/tomcat/tomcatlogs:/usr/local/ apache-tomcat-9.0.22/webapps/logs
Diytomcat
五、 发布自己的镜像
1. 发布到Dockerhub
(1) 注册账号
(2) 登录 docker login -u username
(3) 输入密码
(4)docker push
2. 发布到阿里云镜像仓库
(1) 登录阿里云
(2) 找到容器镜像服务
(3) 创建命名空间
(4) 创建容器镜像
(5) 发布直接参考下面的官方文档