ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker技术学习 (二) 重点

2021-10-30 21:34:06  阅读:132  来源: 互联网

标签:容器 run 路径 学习 镜像 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 第一个版本    . 指的是当前路径
  

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

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

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

标签:容器,run,路径,学习,镜像,docker,重点,目录
来源: https://blog.csdn.net/qq_53582111/article/details/120933048

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有