docker 学习第一节课

首先,我们要了解,docker是一个类似于轻量化的虚拟机。但又和VM这样的虚拟机不一样。VM这样的虚拟机上占用了我们大量的物理内存和CPU 运算的。所以可以理解为是分钟级别。但是dcoker不是的,他是秒级别。启动起来只需要几秒就可以搞定。

docker有几个很重要的概念,就是容器,镜像,仓库。

我们实际在跑的都是一个一个的容器,他不会占用太多的CPU和内存。

常用命令:

docker version 查看版本

docker info 查看基本信息

docker help 帮助命令

docker 的安装

1 yum install -y yum-utils device-mapper-persistent-data lvm2
2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3 yum-config-manager --enable docker-ce-nightly
4 yum-config-manager --enable docker-ce-test
5 yum install docker-ce docker-ce-cli containerd.io

docker images 查看现有的镜像文件

docker pull hello-world 从镜像源下载镜像,也可以下载centos nginx等等 后面加一个 : 可以标注版本号

docker rm -f (强制删除) filename

级联删除 docker rm -f $(docker ps -q)  

docker ps 列出当前容器

docker ps -a 列出所有容器

docker run -it myip/centos:latest /bin/bash 以前台交互模式允许一个容器

docker run -d --name web1 -p 80:80 nginx:latest /bin/bash 以后台模式运行 ,小p代表指定映射端口,latest是最后一个版本号。如果不需要前台运行的,可以后台模式运行。

重点:docker run -it -v /hostshare:/clientshare centos:latest 创建centos 容器并创建宿主机和容器间的共享文件夹

 如果加 :ro 就是仅只读

1.exit 退出并关闭容器

2、ctrl + p + q 不关闭容器退出

docker history 镜像tag --查看镜像包是如何一层一层包裹的

DockerFile体系结构:

FROM -基础镜像,当前新镜像是基于哪个镜像的

MAINTAINER -镜像维护者的姓名和邮箱地址

RUN -容器构建时需要运行的命令

EXPOSE -当前容器对外暴露出的端口

WORKDIR -指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点

ENV -用来在构建镜像过程中设置环境变量

ADD -将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

COPY -类似ADD,拷贝文件和目录到镜像中。

    将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

    COPY src dest

    COPY ["src","dest"]

VOLUME -容器数据卷,用于数据保存和持久化工作

CMD -指定一个容器启动时要运行的命令

   -Dockerfile 中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

ENTRYPOINT -指定一个容器启动时要运行的命令

       -ENTRYPOINT 的目的和CMD 一样,都是在指定容器启动程序及参数

ONBUILD -当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

 

最简单的Dockerfile文件

FROM centos

#基础镜像来自哪里

MAINTAINER david.z<david.z@dgpm.co>

#作者和邮箱,被谁维护
ENV MYPATH /tmp

#添加环境变量
WORKDIR $MYPATH

#工作目录
RUN yum -y install vim
RUN yum -y install net-tools

#安装两个软件
EXPOSE 80 443

#开放 80 443端口
CMD echo "successs------------ok"
CMD echo $MYPATH

#运行命令回显提示
CMD /bin/bash

#

 第二个Dockerfile

FROM centos
MAINTAINER david.z<david.z@dgpm.co>
#把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
COPY c.txt /usr/local/cincontainer.txt
#把java与tomcat添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.8.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local/
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jak1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.8
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
#启动时运行tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-9.0.8/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.8/bin/logs/catalina.out

 

posted @ 2019-06-14 16:27  逍遥姐夫  阅读(158)  评论(0)    收藏  举报