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