docker 笔记

docker 命令常用

#启动容器的时候
-d 后台运行
-p 端口映射 宿主机:docker
-v 卷挂载
-e 环境配置
--name 容器名字
-P 随机映射端口
退出docker的命令
#退出docker容器而不关闭它
ctrl+p+q
docker commit
#提交自己的镜像 成为新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

实战测试

#启动一个默认的tomcat容器
#将其中webapps.disk中的文件全部拷贝到webapps中得到我们想要的镜像并将其提交

在这里插入图片描述

docker 容器数据卷

使用容器数据卷

方式一:直接使用命令 -v 进行挂载

docker run -it -v 主机目录:容器内目录

测试

将本机home/ceshi与docker中centos的home目录进行挂载,并在centos的home下创建一个test.java的文件回到宿主机的/home/ceshi目录下发现同样存在test.java说明挂载成功

在这里插入图片描述

具名挂载和匿名挂载
#匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /etc/nginx nginx

#查看所有卷的情况
[root@iZ2ze7ss8kqoyuzcy54phsZ ceshi]# docker volume ls
local     5ca5d0cf4d14163fce77f75e5b544f20a29cb8ddb0ab7dfa4a3948f571e2694e
local     41b02b418f8ed6b712a097b54c9c303e5d3a19dc8f21e1a000fd51f5d7fdde36

#这里发现这种就是匿名挂载,-v的时候只写了容器内路径没有写容器外的

#具名挂载

[root@iZ2ze7ss8kqoyuzcy54phsZ ceshi]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
a2d4a31b589f31bda4b5fa8bc2fe405a2151fbc8f87bca5e76fb3c3e20fbe45c
[root@iZ2ze7ss8kqoyuzcy54phsZ ceshi]# docker volume ls
DRIVER    VOLUME NAME
local     5ca5d0cf4d14163fce77f75e5b544f20a29cb8ddb0ab7dfa4a3948f571e2694e
local     41b02b418f8ed6b712a097b54c9c303e5d3a19dc8f21e1a000fd51f5d7fdde36
local     juming-nginx
#通过-v 卷名:容器内路径
#查看一下这个卷

在这里插入图片描述

所有的卷,没有指定目录的话都是在 /var/lib/docker/volunes/xxx/_data

#如何确定是具名挂载还是匿名挂载
-v 容器内路径       #匿名挂载
-v 卷名:容器内路径  #具名挂载
-v /宿主机路径:容器内路径  #指定路径挂载

扩展

ro readonly #只读
rw read write #可读可写
#挂载出的内容就有了限定
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

#只要看到ro只能通过宿主机操作,容器内部无法操作

初识Dockerfile

Dockerfile使用构建镜像的构建文件!命令脚本,通过这个脚本生成镜像

镜像是一层一层的,脚本是一个个命令,每个脚本都是一层

#创建dockerfile文件 ,名字任意
#文件内容:指令和参数
FROM centos
#这是一个匿名挂载
VOLUME ["volume01","volumeo2"]

CMD echo "----end-----"
CMD /bin/bash
#这里的每个命令就是镜像的一层

在这里插入图片描述

#启动自己生成的容器

在这里插入图片描述

这个卷和外部的卷有一个同步

DockerFile

构建步骤

1.编写一个dockerfile文件

2.docker build 构建成为一个镜像

3.docker run 运行镜像

4.docker push 发布镜像(dockerhub,阿里云镜像仓库!)

DockerFile构建过程

基础知识:

1.每个保留关键字都是大写字母

2.执行从上到下

3.#表示注释

4.每一行命令都会创建提交一个新的镜像层,并提交

在这里插入图片描述

dockerfile是面向开发的,发布项目,做镜像,就要编写dockerfile文件,这个文件十分简单

Docker镜像逐渐成为了企业交付的标准,必须要掌握!

步骤:开发,部署,上线运维,缺一不可!

Dockerfile:构建文件,定义了一切的步骤,源代码

Dockerimages:通过Dockerfile构建生成的镜像,最终通过发布和运行的产品,以前是jar,war

Docker容器:容器就是镜像运行起来提供服务的。

DockerFile的指令
FROM            #基础镜像 一切从这里开始构建
MAINTAINER      #镜像是谁写的,留下姓名和邮箱
RUN             #保留构建的时候需要运行的命令
ADD             #步骤,tomcat镜像,这个tomcat的压缩包就是添加的内容
WORKDIR         #镜像的工作目录
VOLUME          #挂载目录
EXPOSE          #指定暴露端口
CMD             #指定容器启动时运行的命令,只有最后一个会执行,可被替代
ENTRYPOINT      #指定运行时运行的命令,可以直接追加命令
ONBUILD         #当构建一个被继承的Dockerfile就会运行onbuild的指令,触发指令
COPY            #类似ADD将我们的文件拷贝到镜像中
ENV             #构建的时候设置环境变量                                                                                                                                                                           

构建自己的centos

#编写dockerfile配置文件
FROM centos
MAINTAINER  sunyihao<1915257388@qq.com>

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80
CMD echo $MYPATH
CMD echo "---------end--------"
CMD /bin/bash

#通过这个文件构建镜像

在这里插入图片描述

实战:Tomcat镜像

1.准备镜像文件 tomcat压缩包,jdk的压缩包!

2.编写dockerfile文件

命名位Dockerfile buil会自动寻找这个文件就不用-f指定了

FROM centos
MAINTAINER sunyihao<1915257388@qq.com>
COPY readme.txt /usr/loacl/readme.txt
ADD jdk-8u281-linux-x64.tar.gz /usr/loacl/
ADD apache-tomcat-9.0.43.tar.gz /usr/loacl/

RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/loacl/jdk1.8.0_281
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.43
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.43
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.43/bin/logs/catalina.out

A_BASH /usr/local/apache-tomcat-9.0.43
ENV PATH P A T H : PATH: PATH:JAVA_HOME/bin: C A T A L I N A H O M E / l i b : CATALINA_HOME/lib: CATALINAHOME/lib:CATALINA_HOME/bin

EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.43/bin/logs/catalina.out


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值