• 从零开始安装、编译、部署 Docker


    简介

    主要介绍如何从基础系统debian部署docker
    关于docker基础知识在 相关资料 里有链接

    安装docker

    1、使用root用户身份添加apt源
    添加public key使docker的安装源授信

    $ curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import
    

    安装apt的https支持

    sudo apt-get update && sudo apt-get install apt-transport-https
    

    安装image虚拟化支持

    sudo apt-get install -y linux-image-extra-virtual
    

    添加apt源

    echo "deb https://packages.docker.com/1.11/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
    

    安装docker

    apt-get update && apt-get install docker-engine
    

    查看是否安装成功

    docker info
    

    看到以下信息就安装成功了

    Containers: 1
     Running: 1
     Paused: 0
     Stopped: 0
    Images: 15
    Server Version: 1.11.2-cs3
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Backing Filesystem: extfs
     Dirs: 17
     Dirperm1 Supported: true
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Plugins: 
     Volume: local
     Network: bridge null host
    Kernel Version: 3.16.0-4-amd64
    Operating System: Debian GNU/Linux 8 (jessie)
    OSType: linux
    Architecture: x86_64
    CPUs: 1
    Total Memory: 3.871 GiB
    Name: debian
    ID: IWCZ:QXXZ:VBUN:UMF7:XRG3:CMXB:6LUO:F65C:OA6B:75QQ:7SEW:3OKT
    Docker Root Dir: /var/lib/docker
    Debug mode (client): false
    Debug mode (server): false
    Registry: https://index.docker.io/v1/
    

    制作基础软件镜像

    jdk8

    首选需要安装jdk,这里使用jdk8进行安装
    download jdk
    同目录下编写Dockerfile

    FROM registry.cn-hangzhou.aliyuncs.com/yuuji/debian:latest
    
    ADD jdk-8u101-linux-x64.tar.gz /opt
    
    ENV JAVA_HOME /opt/jdk1.8.0_101
    
    WORKDIR /usr/bin
    RUN ln -s /opt/jdk1.8.0_101/bin/java java
    

    目录结构如下:
    screenshot
    编译发布

    docker build -t jdk8 . 
    

    也可以在docker hub服务器创建仓库发布到远程

    docker build -t registry.cn-hangzhou.aliyuncs.com/xxx/jdk8 . 
    docker push registry.cn-hangzhou.aliyuncs.com/xxx/jdk8
    

    发布后可以到远程查看,也可以使用命令查看

    docker images
    

    mave3

    基于jdk8我们在制作一个maven3的image,步骤同上,我就不一一列举命令了;
    Dockerfile

    FROM registry.cn-hangzhou.aliyuncs.com/yuuji/jdk8:latest
    
    ADD settings.xml /root/.m2/settings.xml
    ADD apache-maven-3.3.9-bin.tar.gz /opt
    
    WORKDIR /usr/bin
    RUN ln -s /opt/apache-maven-3.3.9/bin/mvn mvn
    

    发布,查看是否成功

    制作软件错误

    如果过程中遇到错误怎么办
    使用 命令 docker images 如果看到了none的可以使用命令 docker rmi IMAGE ID 进行清理;
    如果清理不掉的话是这个镜像被使用了,使用docker ps -a 然后找到使用的CONTAINER
    然后 docker rm CONTAINER ID

    编译项目与部署

    这里是通过spring-boot首先项目可以启动
    然后在项目跟目录下建立Dockerfile

    FROM registry.cn-hangzhou.aliyuncs.com/yuuji/maven3:latest
    
    EXPOSE 7001
    
    RUN mkdir -p /opt/leona
    WORKDIR /opt/leona
    ADD . /opt/leona
    
    RUN mvn clean install -Dmaven.test.skip
    
    CMD ["java","-jar","target/leona.jar"]
    

    端口号 7001 是你spring-boot web配置的

    结构如下:
    screenshot

    然后编译image 同软件,这里我就不发布到远程了

    docker build -t xxx .
    

    最终的本地仓库docker images
    screenshot

    部署

    已经编译好了软件和程序的image接下来就是部署了

    docker run -d -p 7001:7001 xxx
    

    检查一下curl localhost:7001

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
                <title>Leona</title>
        </head>
    <body>
        hello word!
    </body>
    </html>
    

    是不是很简单? 233

    具体参数不解释了,可以自己查;

    相关资料

    关于docker
    参考官方安装文档
    docker hub服务器

    用云栖社区APP,舒服~

    【云栖快讯】映客、熊猫TV、虎扑、HTC、优酷土豆、网聚宝、博云视觉、钉钉、驻云、e代驾……互联网时代知名企业现场分享他们的云端体验,更有意想不到的重磅神秘嘉宾来袭!8月9日,北京云栖大会即将直播!  详情请点击
  • 相关阅读:
    电路分析
    python-字典
    python-异常
    python-抽象类和抽象方法
    pyqt5-QAbstractScrollArea滚动条
    python-类的继承
    python-语言播报
    pyqt5-QFrame边框样式
    流媒体技术学习笔记之(三)Nginx-Rtmp-Module统计某频道在线观看流的客户数
    让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
  • 原文地址:https://www.cnblogs.com/aliyunblogs/p/5749234.html
Copyright © 2020-2023  润新知