docker、docker-compose笔记 以及部署torch模型

docker

    • 一、docker安装和配置
          • 卸载旧版本
          • 在线安装docker
          • 离线安装docker(以银河麒麟(ubuntu)为例)
            • 操作系统版本查询
            • docker官网下载安装文件
            • 离线安装
          • 卸载docker
          • docker帮助
    • 二、docker常用命令
          • 查看docker版本
          • 查看docker运行状态
          • 查看docker系统信息
          • 搜索docker镜像
          • 下载docker镜像
          • 构建docker镜像
          • 查看镜像列表
          • 删除docker镜像
          • 保存docker镜像
          • 载入镜像
          • 容器下载
          • 新建容器并启动
          • 查看容器列表
          • 退出容器
          • 删除容器
          • 容器启动和停止
          • 查看docker日志
          • 进入当前运行中的容器
          • 容器和主机拷贝文件
          • 容器commit为镜像
          • 容器数据卷
          • 其它命令
          • dockerfile
    • 三、docker部署torch模型示例
    • 四、docker-compose 安装
        • 下载安装
        • 参考文档

一、docker安装和配置

卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
在线安装docker
ubuntu下在线安装:[docker安装](https://cloud.tencent.com/developer/beta/article/1632429)

#更新yum到最新版
sudo yum install -y yum-utils
#设置阿里云镜像  
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fase
#安装docker  (或者apt-get)
sudo yum install -y docker-ce docker-ce-cli containerd.io
# 启动docker
systemctl start docker

# 查看docker运行状态
systemctl status docker

#配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uv9ip23v.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
离线安装docker(以银河麒麟(ubuntu)为例)
操作系统版本查询

麒麟系统使用Linux内核,这也就是说,不少Linux版本的软件可以直接在麒麟系统上进行安装。但Linux也有多种不同的版本,这里就需要先确定所使用的麒麟操作系统版本对应哪个Linux OS。

# 查询指令
uname -a   ||  lsb_release -a  ||  cat /proc/version

使用 cat /proc/version 指令时,可以看到输出的内容中有 “Ubuntu1~16.04.9” 字样,也就是说该麒麟版本与Ubuntu较为接近,可以使用.deb安装包。

docker官网下载安装文件

docker官网文档: https://docs.docker.com/engine/install/ubuntu/#install-from-a-package
下载地址: https://download.docker.com/linux/ubuntu/dists/
Ubuntu对应版本号与版本名称: https://blog.csdn.net/songfulu/article/details/85310273
选择正确的Ubuntu发行版本,我们刚查询到的对应版本是Ubuntu16.04.9,也就是xenial版本。
/ubuntu/dists/xenial/pool/stable/amd64/ 的路径下,可以找到docker各稳定版的离线安装包。

  • 安装包共有3类,即 containerd.io \ docker-ce-cli \ docker-ce 这3类安装包之间存在着依赖关系,每一类安装包都需要至少下载一个。
离线安装

三类安装包之间存在依赖关系,按如下顺序安装

# 安装容器类服务
dpkg -i containerd.io_XXXXXX.deb
# 安装docker客户端
dpkg -i docker-ce-cli_XXXX.deb
# 安装docker服务端程序
dpkg -i docker-ce_XXXX.deb

安装完成后,启动docker服务

卸载docker
#卸载
sudo yum remove docker-ce docker-ce-cli containerd.io
# 删除docker文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
docker帮助
docker --help
或者
docker [options] --help

二、docker常用命令

查看docker版本
docker version
查看docker运行状态

查看docker系统信息
docker info
搜索docker镜像

docker仓库官方地址

docker search 镜像
下载docker镜像
docker pull 镜像
# 指定版本下载
docker pull mysql:5.7
构建docker镜像

查看镜像列表
docker images
docker images [OPTIONS] [REPOSITORY[:TAG]]

--all , -a		Show all images (default hides intermediate images)
--digests		Show digests
--filter , -f		Filter output based on conditions provided
--format		Pretty-print images using a Go template
--no-trunc		Don't truncate output
--quiet , -q		Only show image IDs
删除docker镜像
# 删除单个镜像
docker rmi -f 镜像ID或者镜像名字
# 删除多个镜像
docker rmi -f 镜像id 镜像id 
# 删除所有镜像
docker rmi -f $(docker images -aq)
保存docker镜像
docker save -o xxx.tar 镜像名称
载入镜像
docker load -i xxx.tar
容器下载

有了镜像,才能创建容器

# 下载centos镜像
docker pull centos
新建容器并启动
docker run [参数] image
#参数说明
--name="Name"  容器名字
-d             后台方式运行
-it			   指定交互方式运行,进入容器查看内容
-p			   指定容器端口 -p 8080:8080 (主机端口:容器端口)
#启动并进入容器目录
docker run -it centos /bin/bash
查看容器列表
# 列出正在运行的
docker ps
# -a 列出当前正在运行的容器,带出历史运行过的容器
# -n=? 显示最近创建的容器
# -q  显示运行的容器的编号
docker ps -a
退出容器
#容器停止并退出
exit  

#容器不停止退出
CTRL + p + q  
删除容器
# 删除指定容器,不能删除正在运行的容器,加-f强制停止删除
docker rm 容器id   
# 删除所有容器
docker rm -f $(docker ps -aq)  
# 删除所有容器
docker ps -a -q|xargs docker rm  
容器启动和停止
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
查看docker日志
docker logs [参数] 容器id
# 参数
-tf						 # 跟随并显示时间戳
--tail number  # 要显示的日志条数
进入当前运行中的容器
# 进入容器后开启新终端
docker exec -it 容器id /bin/bash

# 进入容器正在执行的终端
docker attach 容器id
容器和主机拷贝文件
docker cp 容器id:容器内路径 目的主机路径
docker cp 主机路径 容器id:容器内路径
容器commit为镜像
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag]
容器数据卷

实现容器之间的数据共享,docker容器中产生的数据,同步到本地,卷技术通过目录挂载可以将容器内的目录挂载到linux上面。
容器的持久化和同步操作,容器之间也是可以数据共享的。
容器删除后,挂载到本地的数据卷依然不会丢失,实现了容器数据持久化

# 直接使用命令参数来挂载 -v
docker run -it -v 主机目录:容器内目录

# 容器不管是否运行都可同步
docker run -it -v /home/ceshi:/home centos /bin/bash
其它命令
# 查看镜像元数据
docker inspect 容器id
#查看容器中进程信息
docker top 容器id
# 保存镜像
docker save 镜像名(或镜像ID)> 镜像名(自定义).tar
dockerfile
FROM         #基础镜像,从这里开始
MAINTAINER   #镜像是谁写的,姓名+邮箱
RUN          #镜像构建的时候需要运行的命令
ADD          #步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR      #镜像的工作目录
VOLUME       #挂载的目录
EXPORT       #保留端口配置
CMD          #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRTPOINT   #指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD      #当构建一个被继承DockerFile这个时候就会运行ONBUILD的命令
COPY         #类似ADD,将我们的文件拷贝到镜像中
ENV          #构建的时候设置环境变量

三、docker部署torch模型示例

步骤1、2、3、4可以放在dockerfile文件中

# 1、拉取python基础镜像
docker pull python:3.6
# 2、创建、启动容器并进入容器目录,终端输出容器id
docker run -it python:3.6 bin/bash
# 3、安装第三方依赖包,这种方式可以确保第三方库版本的一致性
pip install xxx
# 4、将容器提交为镜像
docker commit -m="创建torch容器" -a="sly" 容器id nlp/torch-py36:latest
# 5、创建dockerfile
	FROM nlp/torch-py36:latest
	COPY . /home
	WORKDIR /home
	#安装第三方依赖 
	#RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
	ENTRYPOINT ["python"]
	CMD ["app/app.py"]   #根据工程目录结构指定路径,home为工程根目录
# 6、创建镜像,在dockerfile和工程所在目录
# --network="host" 解决dockerfile中安装库无法连网的问题
docker build (--network="host") -t rel-extract:latest .
# 7、后台模式启动容器
docker run -d -p 5000:5000 rel-extract:latest

四、docker-compose 安装

下载安装

Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

1、运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装其他版本的 Compose,请替换 v2.2.2。
2、将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

3、创建软链:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4、测试是否安装成功:

docker-compose --version

参考文档

官方文档:https://www.runoob.com/docker/docker-compose.html

你可能感兴趣的:(linux,docker,pytorch,自然语言处理,深度学习,神经网络)