• docker 制作自己的项目镜像


    1、下载centos镜像

    2、查看镜像

    docker images:查看镜像

    镜像名称   镜像版本 镜像id

    centos                                          7.6.1810            f1cb7c7d58b7

    3创建容器:

    docker run -d -it --privileged -p 5555:8888 -p 5452:7472 --name fenzhen -e LANG=zh_CN.utf8 f1cb7c7d58b7 /usr/sbin/init

    说明:

    –privileged /usr/sbin/init 这两行主要解决容器中使用systemctl去启动服务时出现D_Bus错误的问题

    -d: 后台运行

    -it: 组合使用,创建一个伪终端

    -p: 端口映射,本机端口:容器端口

    –name: 容器名,(需要注意命名规范,可自己定义 ,only [a-zA-Z0-9][a-zA-Z0-9_.-])

    -e:防止乱码,编码格式

    f1cb7c7d58b7 :镜像id

    4进入fenzhen容器:

    docker exec -it 4eeb0eb94277 /bin/bash

    或者:docker attach 4eeb0eb94277

    5、为容器配置运行环境

    (1)下载jdk

    不下载了,把宿主机的jdk复制到容器中:

    docker cp jdk1.8.0_171/ 4eeb0eb94277:/opt

    vim /etc/profile

    export JAVA_HOME=/opt/jdk1.8.0_171

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    export PATH=$PATH:$JAVA_HOME/binAnaconda3-2019.10-Linux-x86_64.sh

    source /etc/profile

    (2)下载Anconda

    不下载了,把宿主机的Anconda复制到容器中:

    docker cp Anaconda3-2019.10-Linux-x86_64.sh 4eeb0eb94277:/opt

    运行sh Anaconda3-2019.10-Linux-x86_64.sh

    vim /etc/profile

    export PATH="/root/anaconda3/bin:$PATH"

    source /etc/profile

    (3)复制图谱

    docker cp neo4j-community-3.4.7 4eeb0eb94277:/opt

    (4)复制项目

    docker cp fenzhen/ 4eeb0eb94277:/opt

    (5)运行neo4j

    bin/neo4j start

    本地访问:

    (6)运行项目

    把本地的python环境复制到容器中的anconda envs中:

    docker cp /root/anaconda3/envs/py365 4eeb0eb94277:/root/anaconda3/envs

    # 激活 anaconda 环境

    source activate

    # 如果退出 anaconda 环境

    source deactivate

    把项目中flask访问地址和访问neo4j的配置修改一下:

    运行项目:

    conda activate py365

    python triage_server.py

    访问接口:

    (7)退出容器

    conda deactivate

    (8)根据容器创建镜像

    docker commit -a "kwz" -m "my first image for fenzhen" 4eeb0eb94277 fenzhen_image:v1

    OPTIONS说明:

    -a :提交的镜像作者;

    -c :使用Dockerfile指令来创建镜像;

    -m :提交时的说明文字;

    -p :commit时,将容器暂停。

    (9)把制作好的镜像打成tar

    格式:docker save -o tar包的名字 镜像名

    例子:docker save -o /opt/soft/fenzhenImage.tar fenzhen_image:v1

    (10)别人接收到tar包之后,怎么使用

    格式:docker load < /opt/soft/fenzhenImage.tar

    docker images

     

  • 相关阅读:
    Solution 「UVA 1104」Chips Challenge
    Solution 「WF2011」「BZOJ #3963」MachineWorks
    Solution 「洛谷 P4198」楼房重建
    Solution 「HDU 6643」Ridiculous Netizens
    Solution 「多校联训」排水系统
    [非专业翻译] Mapster 配置位置
    [非专业翻译] Mapster 使用特性标签配置映射
    [非专业翻译] Mapster 自定义命名约定
    [非专业翻译] Mapster 配置实例
    [非专业翻译] Mapster 自定义映射
  • 原文地址:https://www.cnblogs.com/kwzblog/p/14026586.html
Copyright © 2020-2023  润新知