美文网首页
小鲸鱼[Docker]

小鲸鱼[Docker]

作者: baby_honour | 来源:发表于2019-11-11 14:18 被阅读0次

    原文:https://blog.csdn.net/sunnyzyq/article/details/101222410

    (1)Docker 安装

    yum -y install docker

    输入语句执行后,就可以看到 Docker 它正在下载了,下面 19% 是下载进度。

    当你看到下图的这个Complete,就表示 Docker 已经下载安装好了。

    (2) 查看Docker版本
    是否真的已经安装好了呢?我们可以通过以下命令查看Docker的版本。

    docker version

    此时,我们可以看到 Docker 的版本号为 1.13.1,表示真的已经安装上了。

    (3) 启动Docker

    service docker start

    (4) 打包项目到服务器

    现在 Docker 已经启动成功了,我们来实战一下,我们先将Eclipse中的项目打成jar包放到Linux上。

    (5) 创建Dockerfile

    在我们刚刚的项目jar包下同级目录下,创建Dockerfile文件,这个文件是玩转Docker的核心文件哦。

    touch Dockerfile

    现在这个Dockerfile还是一纸空文,我们需要将我们的项目 jar 包写进去。
    编辑Dockerfile文件,内容如下(注意第3行第一个是你的jar包名):

    FROM java:8
    VOLUME /tmp
    ADD com.sunnyzyq-0.1.jar app.jar
    RUN bash -c ‘touch /app.jar’
    EXPOSE 80
    ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    不想在Linux上打字的可以把文件拿出来编辑,然后放回去。

    内容解释:
    这里他有个镜像名词,不懂没关系,看完后面就懂了,先记住这个名词就是。

    FROM :表示用哪个基础镜像去构建新的镜像,上面的java:8, 也就是jdk1.8。
    ADD :表示叠加什么镜像到上面的基础镜像中。我们现在就叠加当前目录下的 com.sunnyzyq-0.1.jar 到基础镜像中。
    EXPOSE:表示对外暴露的端口,我使用的是80。
    RUN bash -c ‘touch /app.jar’ :使用 shell编程,执行一个 touch 命令,更新文件的访问和修改时间 -c 如果文件不存在,则不要进行创建。具体参考liunx 的 touch 命令和shell编程。
    ENTRYPOINT :入口点, 表示容器运行后默认执行的命令。
    (6) 拉取基础镜像 java8

    docker pull java:8

    上面Dockerfile说得很清楚,我们的程序需要一个基础镜像Java8,我这里由于昨天已经下载好了,所以他会提示更新,你们如果没有下载 java8 的镜像,请静等下载。

    (7) 构建程序镜像
    现在 java8 的基础镜像有了,就可以创建我们的程序镜像了,就是执行刚刚那个Dockerfile文件。

    docker build -t xxx .
    注意:xxx 为新镜像名字,随便取,别忘了最后有个点。

    可以我们程序的镜像已经构建成功了,并生成了一个930858c62738的镜像ID。

    (8) 查看镜像

    docker images

    可以看到刚刚的创建的镜像,以及我们之前下载的jave8镜像(这里还可以看到,由于我刚刚创建的镜像和昨天创建的镜像虽然名字不一样,但其他数据都一样,这说明两个镜像底层都是指的同一个)。

    (9)创建容器并运行

    镜像我们已经有了,但最后能让项目运行起来的是容器。如何理解容器与镜像的关系呢?
    镜像可以理解为一个Java类,而容器可以理解为Java类的实例。
    类只有一个,但可以new出千千万万个实例对象。
    所以,镜像只是一个可以生成容器的东西,而容器才能让程序运行起来。

    那么,现在我们就让我们用刚创建的镜像创建一个容器,并让他运行起来。

    如: docker run --name sunnyzyq -d -p 80:80 sunnzyq-docker-test
    

    命令解释:

    容器名:我这里取的名字为 sunnyzyq
    -d: 后台运行容器,并且返回容器完整ID
    -p: 是用于指定端口的。
    内部端口:项目程序的端口
    外部端口:网站域名的端口

    (10) 查看运行的容器

    docker ps

    这样可以看到我们刚运行容器的详细信息。
    docker ps -a

    仅以记录 以备不时之需

    相关文章

      网友评论

          本文标题:小鲸鱼[Docker]

          本文链接:https://www.haomeiwen.com/subject/azqtictx.html