docker作为一种虚拟化技术,对在开发过程中的部署和测试有着用过之后不可替代的作用。恰好最近接收实验室内server部署的任务,趁机再学习一下docker技术,并留下记录,充当作为安利docker使用的文档。

安装docker

win10

win10的docker安装非常简单,只需要官网下载安装包,一路安装就可以自动配好相关环境。作为测试和主力开发用机都是对用户非常友好的。
但是仍存在一个bug
当下载docker之后,docker在配置环境过程中自动打开Hyper-V选项,会出现和vmware不兼容的问题,具体的原因大家可以查阅这篇文章:
https://blog.minirplus.com/10268/
注意!在关闭Hyper-V选项后,docker将无法正常使用。
我的解决办法如下:

  • 更新vmware到16
  • 更新win10系统到最新

在以上两个条件达成的情况下,即可同时使用docker for win10和vmware
启动桌面应用如下图所示:
docker for win10.png

linux(Ubuntu16.04)

注意!最新docker仅支持Ubuntu16.04之后的linux版本,并需要在64位系统上运行,对于其他版本的系统可以尝试下载旧版docker即docker.io进行docker的使用
具体步骤如下:

  • apt-update:更新相关库,确认下载源在国内。
  • 运行以下命令
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # 卸载旧版本
    sudo apt-get remove docker \
    docker-engine \
    docker.io
    # 下载必要包和https传输的准备
    sudo apt-get update
    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo \
    "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    # 进行下载
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    运行以下命令测试是否安装成功
    1
    docker run hello-world
    安装成功后应出现以下信息:
    __2KS1BAYY__DBUA___V_FH.png

Mac

TODO

基于flask小实验的简单命令介绍

命令的堆叠接受程度较低,这里通过实验来进行介绍。
基于flask我们可以简易的搭建一个server,并根据这个server简单记录和入门相关命令。请注意你并不需要安装和装配除docker以外的任何环境。

目录文件内容

test.py

1
2
3
4
5
6
7
8
9
10
11
12
13
from flask import Flask

app = Flask('kkk')


@app.route('/', methods=['GET', 'POST'])
def r_page():
return "helloworld"


if __name__ == "__main__":
print("开始运行")
app.run(host='0.0.0.0', port=8080)

requirement.txt

1
flask

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
# 拉取公共镜像
FROM python:3.6
# 新建工作目录
WORKDIR /test
# 将源文件拷贝进工作目录
COPY . /test
# 安装使用的相关包
RUN pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 暴露8080端口
EXPOSE 8080
# 运行程序
CMD ["python", "test.py"]

相关命令的使用

1
2
3
4
5
6
7
8
# 根据同一目录下的以上文件构建镜像,目录为ycl,tag为test
docker build -f Dockerfile -t test:flask
# 创建容器,并选择我们刚刚创建的容器运行
docker run -p 8080:8080 test:flask
# 导出镜像到文件当中便于拷贝
docker save test:flask >1.tar
# 读入命令
docker load <test.tar

除以上实验内容外,也可以在容器中对镜像内容进行修改并通过commit命令保存到镜像;通过pull和push将自己制作的镜像传到云。

以上是简单的docker入门笔记,下一篇会针对某一机器学习模型做docker装配的具体实验说明。

参考网站
https://yeasy.gitbook.io/docker_practice/install/ubuntu
推荐使用在线docker云服务体验
https://labs.play-with-docker.com/