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