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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM