Docker实用笔记

最近一直用到docker封装自己的代码

罗列一下需要用到的流程和代码,以便日后使用

1.建立docker

首先查看有无重复docker镜像存在

docker images

以及查看docker容器

docker ps
#或者
docker ps -a

2.建立docker 镜像

首先创建dockerfile


FROM python:3.6
 
WORKDIR /hfserver
 
ADD . /hfserver
 
RUN pip --default-timeout=100 install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
 
EXPOSE 7776
 
CMD ["python", "hf2.py"]

ps:为防止出现pip下载时出现time out,使用豆瓣源并定义timeout时间,能很有效,亲测有效。

ps2:此Dockerfile是直接cmd python使用,如果还有入参等其他要求,可以写个sh脚本,直接cmd .sh脚本执行。

此外,封装的文件夹,需要以下文件:

  • Dockerfile
  • hfserver.py
  • requirements.txt

还可包括:

  • run.sh
  • xgboost.model

run.sh

#!/bin/sh
CURDIR="`dirname $0`" #获取此脚本所在目录
echo $CURDIR
cd $CURDIR #切换到该脚本所在目录
python hfserver.py

3.建立docker镜像

在需要封装的文件夹目录下,直接运行

docker build -f Dockerfile -t [镜像名]:[版本号] .

例如:
docker build -f Dockerfile -t hfserver:1.0 .

ps:注意最后一个“.”,表示当前目录

4.建立docker仓库

可直接在阿里云免费的个人镜像仓库中建立私有仓库,地址:
https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard

5.建立docker仓库链接,并上传镜像

直接摘抄阿里云给的案例:

$ docker login --username=******** registry.cn-hangzhou.aliyuncs.com

$ docker login --username=******** registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/*****/[镜像名]:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/*****/[镜像名]:[镜像版本号]

至此,docker镜像上传完成

6.使用docker镜像

直接从阿里云上下载镜像

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/dazun/[镜像名]:[镜像版本号]

7.运行docker镜像
查看自己下载的docker image 名称,由于阿里云下载的会有前缀,所以下面需要注意确认好运行的镜像名。
这样就可以愉快的使用自己的docker镜像了

docker run hfserver:1.0

但是,还遇到一些问题,因为自己本身是一个flask的python应用服务,所以在一开始就已经增加了7777端口作为服务端口,所以需要增加一个映射关系

docker run -p 7777:7777 hfserver:1.0

此外又因为服务需要一直开启,故此,还需要后台运行

docker run -d -p 7777(外部端口):7777(内部端口) hfserver:2.0

8.进入容器

还遇到一些问题是,因为端口占用,我需要跟换python服务里的端口号,并修改部分代码,所以我需要进入镜像容器中去查看

docker exec -it [容器名] /bin/bash

还可通过cp指令进行拷贝

将主机/home/project目录拷贝到容器96f7f14e99ab的/www目录下。

docker cp /home/project 96f7f14e99ab:/www/

9.本地保存或读取镜像

因为有时候是闭网状态,所以需要脱机保存和读取

#保存
docker save spring-boot-docker  -o  /home/project/hfserver-docker.tar

#读取
docker load -i hfserver-docker.tar  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值