docker技术学习 (二) 重点

一、docker容器数据卷

1、数据卷概念

1.1 数据卷是宿主机中的一个目录和文件

1.2 当容器目录和数据卷目录绑定后。对方修改会立即同步

1.3 一个数据卷可以同时被多个容器同时挂载

2、数据卷作用

2.1 容器数据持久化

2.2 外部机器和容器间接通信

2.3 容器之间数据交换

一句话:卷技术就是为了实现数据的持久化和同步操作,容器间也是数据共享        

3、配置数据卷

docker run 其他一些可选参数 -v 宿主机目录(文件):容器目录(文件) 镜像名


--name      容器名字
-d          后台交互式
-p          自定义端口   主机端口:容器端口
--rm        容器停止运行,会自动删除
-e
-v          宿主机目录(文件):容器目录(文件)      数据卷的绑定

注意事项:
1. 目录必须是绝对路径
2. 如果目录不存在则会自动创建
3. 可以挂载多个技术卷

二、Volume的基本使用

docker volume create 容器卷名        # 创建一个自定义容器卷

docker volume ls                 # 查看容器卷列表

docker volume inspect  容器卷名  # 查看指定容器卷详情信息

 三、具名和匿名挂载

匿名挂载:卷挂载只写容器里面的路径,不写容器外的路径

-v   容器内的路径      匿名挂载
-v   卷名:容器内的路径   具名
-v   /宿主机内路径:容器内路径



ro  readonly   # 只读
rw  readwrite  # 可读可写
docker run -d -P --name 123 -v 自定义卷名:容器内的路径:ro/rw  镜像名

四、dockerFile

1、定义:

        dockerfile是一个可以自定义镜像所有命令的文本文件,包含了一条条指令和说明。

有了dockerfile就可以指定自己的docker镜像规则

2、文件格式内容

# 文本文件内的格式命令
# 格式
# 1、
FROM 基础镜像名:版本     #基础镜像         
# 2、
MAINTAINER  维护者名字  维护者邮箱           # 指定维护者信息  姓名 邮箱


# 3、
RUN         # 指的是想让他干嘛(在run前面加上RUN即可) 镜像构建的时候要运行的命令
# shell    command命令形式
# exec     ["",""]
# 格式
RUN echo '-------h1 run shell ---'
RUN ["echo","------h1 run exec ----"]

# 4、
ADD        #本地文件增加到容器内,
# 可以访问网络资源,
#压缩格式如果是 gzip   bzip   add指令都会将其解压缩 
# 格式
ADD wget

#5、
COPY      # 类似ADD   将我们文件拷贝到镜像中 ,注意:不会自动解压缩  不能访问网络资源
# 格式
COPY 源路径  容器内目录路径


# 6、
CMD         指定容器启动的时候要运行的命令  。 只有一个会生效
# shell    command命令形式
# exec     ["",""]
# 格式
CMD echo '-------h1 run shell ---'
CMD ["echo","------h1 run exec ----"]

------------------------------------------
ENTRYPOINT ["rm","docker2"]
CMD ["-rf"]
# 真正执行的命令将会是 rm docker2 -rf


# 7、   LABEL  标签
# LABEL version="1.0"
LABEL VERSION="1.0" description="服务器"

# 8、 ENV 设置环境变量的
ENV MODE=test
RUN yum install -y curl && curl http:192.168.128.128/$MODE  # && 这个符号是追加的意思

WORKDIR   设置当前工作目录


# 9、EXPOSE    运行时容器服务端口
EXPOSE 80
EXPOSE 8080

# 10、VOLUME   用于构建镜像时定义卷  设置卷,挂载主机目录
# exec 形式
VOLUME ["/data"]


# 11、WORKDIR   设置当前工作目录
WORKDIR  路径

# 12、ARG 和 env 设置环境变量
# ARG  设置环境变量的时候,只是在镜像构建的时候设置
ARG APP="PYTHON.STA"


# 13、ONBUILD  指令就是为了帮助别人定制   一般和 RUN 连用  例如 ONBUILD RUN 



ENTRYPOINT    指定容器启动的时候运行命令   可以追加命令

3、实战一  用dockerfile说一hello

第一步

echo的语法格式: echo ' 内容 ' > 映射到的地方(路径)

注意:echo '<h1>hello</h1>' > /usr/share/nginx/html/index.html  是把hello 映射到 index.html路径里面   

第二步 创建镜像 

docker build -t mynginx:v1 .   
# -t mynginx:v1  指的是需要创建镜像的名字  :v1 第一个版本    . 指的是当前路径,包含了dockerfile文件
  

第三步 (查看镜像是否创建成功)

 第四步 运行自己创建的镜像

docker run --name mynginx -d -p 80:80 mynginx

4、实战2 (制作 tomat镜像)

步骤1  编写dockerfile

1、jdk和tormat包上传到/opt/mytormat(我自己的路径)里面    

tomcat: 参考网址:Apache Tomcat® - Apache Tomcat 8 Software Downloads

2、

# 编写dockerfile文件

vim Dockerfile

3、在dockerfile中编写一些dockerfile的指令

# 基本镜像
FROM centos

# 维护者信息
MAINTAINER  shiyi 1390806607@qq.com

# 把依赖包加进来  ADD命令可以追加也可以解压
ADD ./jdk-17_linux-aarch64_bin.tar.gz /user/local
ADD ./apache-tomcat-8.5.72.tar.gz /usr/local

RUN yum install -y vim

# 设置环境变量
ENV MYPATH /usr/local

# 设置工作目录
WORKDIR $MYPATH

ENV JAVA_HOME=/usr/local/jdk-17_linux-aarch64_bin
ENV TOMCAT_HOME=/usr/local/apache-tomcat-8.5.72
ENV PATH $PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin:$TOMCAT_HOMT/lib

# 配置端口
EXPOST 8080

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

jdk: 参考网址:Java Downloads | Oracle

步骤2 docker build构建一个镜像

docker build -t mytomcat:v1 .

步骤3 docker run 运行镜像

docker run --name myytomcat -d -p 80801:8080 mytomcat:v1

上一章节:https://blog.csdn.net/qq_53582111/article/details/120841834

下一章节:https://blog.csdn.net/qq_53582111/article/details/121056890

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

allen wy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值