Appearance
环境部署 #
3-1、制作镜像 #
Dockerfile位置 #
主机:iasp68 (172.18.231.68)
Dockerfile及工程目录:/mci/dockers/img_pyserv
生成镜像指令:docker build -t {imageName}.
端口说明 #
镜像介绍 | 内部端口 | 外部端口 | 描述 |
以镜像方式部署python后台服务 | 1191 | 1191(可自己指定,但要和java后台对接) | rest端口 |
3293 | 3293 | nginx- svcmain.py 的监听端口 | |
3871 | 3871 | pypi-server 的监听端口 | |
3022 | 3022 | sftpgo 的服务端口 |
3-2、测试环境部署 #
- 部署主机 #
测试环境是172.18.231.75主机
- 部署python服务容器 #
- 迁移私服仓库 #
迁移私服仓库至部署主机,私服仓库位置iasp68:/mci/dockers/packages/pypi
- 启动python容器 #
docker run -it --name {containername} -p 3293:3293 -p 3871:3871 -p 3191:3191 -p 3022:3022 -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -u 0:0 --group-add 0 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker:ro -v /lib64/libltdl.so.7.3.0:/usr/lib/libltdl.so.7:ro -v {部署主机私服仓库}:/pyserv/pypi -v /etc/docker:/etc/docker -e HOST_IP={部署主机IP} -e HOME=/pyserv -w=/pyserv { imageName } /bin/bash
- 配置k8s环境 #
部署环境申请下来独有的k8s环境,需要在python服务容器内配置,将k8s环境的config迁移至容器内,命令如下:
docker cp xxx.config { containername }: /pyserv/.kube/config
- 配置daemon.json #
daemon.json文件内配置镜像仓库地址 daemon.json在容器中的目录:/etc/docker/daemon.json
案例:
- 首次登录镜像仓库 #
进入开发容器,登录镜像仓库,获取key值,以便能够推送镜像至镜像仓库
进入容器:docker exec -it {容器名称} /bin/bash
案例:
- 启动python服务 #
进入容器,启动python服务
案例:
- Python服务配置文件说明 #
pyserv_conf.py配置文件部分信息说明
rest_port": 3191, # rest服务端口
'k8s_name_space':"xxxxx", # k8s的名称空间(需要根据部署环境的k8s环境配置)
'k8s_config_file':"/pyserv/.kube/config", # k8s 的访问配置文件
#数据库信息(设置部署环境的数据库信息)
"images_to_database_user":"xxxx",
"images_to_database_password":"xxx",
"images_to_database_host":"xxxx",
"images_to_database_port":xxxx,
"images_to_database_database":"xxx",
"project_base_image":"datamng:v2.2.0",#项目容器基础镜像
- 其余基础镜像 #
以下镜像为使用算法平台系统需要的依赖镜像,需要推送至镜像仓库
taskrun:v2、jupyterlab:3.7
推送镜像至k8s环境命令如下:
- 在本地 docker 环境中输入以下命令进行登录
sudo docker login boatswain.registry.si-tech.com.cn:30100
- 然后,对本地需要 push 的 image 进行标记,比如:
sudo docker tag <imageName>:<tag> boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
- 最后在命令行输入如下命令,就可以 push 这个 image 到镜像仓库中了
sudo docker push boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
- projectName为部署环境的k8s环境的命名空间
3-3、生产环境部署 #
- 部署python服务容器 #
- 迁移私服仓库 #
迁移私服仓库至部署主机,私服仓库位置 iasp68:/mci/dockers/packages/pypi
- 启动python容器 #
docker run -it --name {containername} -p 3293:3293 -p 3871:3871 -p 3191:3191 -p 3022:3022 -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -u 0:0 --group-add 0 -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker:ro -v /lib64/libltdl.so.7.3.0:/usr/lib/libltdl.so.7:ro -v {部署主机私服仓库}:/pyserv/pypi -v /etc/docker:/etc/docker -e HOST_IP={部署主机IP} -e HOME=/pyserv -w=/pyserv { imageName } /bin/bash
- 配置k8s环境 #
部署环境申请下来独有的k8s环境,需要在python服务容器内配置,将k8s环境的config迁移至容器内,命令如下:
docker cp xxx.config { containername }: /pyserv/.kube/config
- 配置daemon.json #
daemon.json文件内配置镜像仓库地址
daemon.json在容器中的目录:/etc/docker/daemon.json
案例:
- 首次登录镜像仓库 #
进入开发容器,登录镜像仓库,获取key值,以便能够推送镜像至镜像仓库
进入容器:docker exec -it {容器名称} /bin/bash
案例:
- 启动python服务 #
进入容器,启动python服务
案例:
- Python服务配置文件说明 #
pyserv_conf.py配置文件部分信息说明
rest_port": 3191, # rest服务端口
'k8s_name_space':"xxxxx", # k8s的名称空间(需要根据部署环境的k8s环境配置)
'k8s_config_file':"/pyserv/.kube/config", # k8s 的访问配置文件
#数据库信息(设置部署环境的数据库信息)
"images_to_database_user":"xxxx",
"images_to_database_password":"xxx",
"images_to_database_host":"xxxx",
"images_to_database_port":xxxx,
"images_to_database_database":"xxx",
"project_base_image":"datamng:v2.2.0",#项目容器基础镜像
- 其余基础镜像 #
以下镜像为使用算法平台系统需要的依赖镜像,需要推送至镜像仓库
taskrun:v2、jupyterlab:3.7
推送镜像至k8s环境命令如下:
- 在本地 docker 环境中输入以下命令进行登录
sudo docker login boatswain.registry.si-tech.com.cn:30100
- 然后,对本地需要 push 的 image 进行标记,比如:
sudo docker tag <imageName>:<tag> boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
- 最后在命令行输入如下命令,就可以 push 这个 image 到镜像仓库中了
sudo docker push boatswain.registry.si-tech.com.cn:30100/<projectName>/<repository>:<tag>
- projectName为部署环境的k8s环境的命名空间