Doaker学习笔记--2

Doaker学习笔记--2,第1张

Doaker学习笔记--2

Doaker学习笔记--2
  • 容器数据卷
    • 概念
    • 使用数据卷
    • 具名和匿名挂载
    • 数据卷容器
  • DockerFile
    • 基础知识
    • 基础命令
    • 创建DockerFile实例
    • 实战:Tomcat镜像
    • 发布镜像

容器数据卷 概念

容器间数据共享

使用数据卷

方式一

  1. 使用命令挂载
 docker run -it -v /home/ceshi:/home centos /bin/bash    //可映射多个
  1. 查看挂载信息
docker inspect 容器ID
 "Mounts": [                          --挂载卷
            {
                "Type": "bind",
                "Source": "/home/ceshi",   // 主机内部地址
                "Destination": "/home",     //dokcer容器内的地址
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
具名和匿名挂载
  1. 匿名挂载
docker run -d -P --name nginx01 -v /etc/nginx nginx
//查看所有的volume的情况
docker volume ls
//默认存放路径    不需要指定主机的挂载路径,会自动设定一个
/var/lib/docker/volumes/
  1. 具名挂载
docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx nginx

3.区别

-v 容器内路径             #匿名挂载
-v 卷名:容器内路径   #具名挂载
-v 宿主机路径:容器内路径   #指定路径挂载

4.拓展

docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx:ro nginx
ro : 只读
rw: 可读可写

方式二 :使用Dockerfile脚本挂载

VOLUME ["volume01","volume02"]
数据卷容器
多个容器间同步,实现数据共享,
相互拷贝,删除一个容器,数据不会被删除
docker run -it --name docker02 --volumes-from docker01 镜像名称:[tag]
例子
docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7
DockerFile 基础知识
1.每个保留关键词(指令)都必须是大写
2.执行从上到下执行
3.#表示注释
4.每个指令都会创建并提交一个新的镜像层。

基础命令

FROM                      #基础镜像,一切从这里开始构建
MAINTAINER                #镜像是谁写的,姓名+邮箱
RUN						  #镜像构建的时候需要运行的命令
ADD					      #步骤
WORKDIR				      #镜像的工作目录
VOLUME					  #挂载的目录
EXPOST					  #保留的端口配置
CMD						  #指定这个容器启动时要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT                #指定这个容器启动时要运行的命令,可以追加命令
例如
CMD ["ls","a"]
docker run 镜像ID ls -al
ENTRYPOINT ["ls","a"]
 docker run 镜像ID l
onBUILD			          #当构建一个被继承 DockerFile这个时候就会运行ONBUILD的指令,触发指令
COPY					  #类似ADD,将文件拷贝到镜像中
ENV						  #构建的时候设置环境变量
创建DockerFile实例

创建一个自己的centos
1.编写dockerFile

FROM centos
MAINTAINER sun


ENV MYPATH /user/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

2.构建镜像

docker build -f dockerFile的文件路径 -t 镜像名:[tag]   生成目录
例:
[root@localhost home]# docker build -f mydockerFile-centos -t mycentos:1.2 .
[root@localhost home]# docker run -it mycentos:1.2
[root@b0ac9f6d73e5 local]# pwd
/usr/local     #当前工作目录

3.查看镜像构建步骤

docker history  镜像ID
实战:Tomcat镜像
  1. 准备镜像文件tomcat压缩包,jdk压缩包。
  2. 编写dockerfile文件,官方命令Dockerfile,build会自动寻找这个文件,就不需要-f指定了
FROM centos
MAINTAINER sun<1234455@qq.com>
COPY readme.txt  /usr/local/readme.txt
ADD jdk-8u11-linux-x64.tar.gz   /usr/local/			#会自动解压
ADD apache-tomcat-9.0.22.tar.gz  /usr/local/

RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH

ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH  $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME  /usr/local/apache-tomcat-9.0.22
ENV CATALINA_BASH  /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/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out
  1. 构建镜像
docker bulid -t  diytomcat .
  1. 启动运行镜像
docker run -d -p 9090:8080 --name   mytomcat -v /home/work/build/tomcat/text:/usr/local/apache-tomcat-9.0.22/webapps/test -v /home/work/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.22/logs diytomcat
发布镜像
  1. 登录
docker login
  1. 提交镜像
docker pull 镜像名称:[tagz]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5694361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存