墨尘的模型部署1--docker部署tensorflow serving基础知识(二)

docker部署tensorflow serving基础知识

      • Docker简述
        • dockers架构
        • 容器与虚拟机区别
        • 安装docker与nvidia-docker
        • 安装docker compose
        • 验证docker 安装是否成功,并加入开机启动
        • 配置docker国内镜像
        • 设置docker权限组
      • 一、镜像操作
        • 1.1.查看本地镜像
        • 1.2.搜索镜像
        • 1.3.下载镜像
        • 1.4.删除镜像
        • 1.5.构建镜像
      • 二、容器操作
        • 2.1.查看正在运行的容器
        • 2.2.启动容器
        • 2.3.进入容器、下载包、退出容器
        • 2.4.容器常用操作

菜鸟Docker教程
阮一峰的Docker教程

Docker简述

dockers架构

docker技术的应用确保了不同应用程序间,实现进程级别的隔离docker架构如下图所示。
墨尘的模型部署1--docker部署tensorflow serving基础知识(二)_第1张图片

  • Docker daemon( Docker守护进程):Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。
  • Client( Docker客户端):
  • Images( Docker镜像):Docker镜像是一个只读模板
  • Container(容器):容器是镜像的可运行实例。
  • Registry:Docker Registry是一个集中存储与分发镜像的服务,分为共有(dockers hub)和私有(个人创建)。

容器与虚拟机区别

容器是应用程序层的抽象,它将代码和依赖关系打包在一起。 多个容器可以在同一台计算机上运行,并与其他容器共享操作系统内核,每个容器都作为用户空间中的独立进程运行。 容器占用的空间少于虚拟机(容器图像的大小通常为几十MB)并且几乎立即启动。
墨尘的模型部署1--docker部署tensorflow serving基础知识(二)_第2张图片
虚拟机(VMs)是将一台服务器变成多台服务器的物理硬件的抽象。 管理程序允许多台虚拟机在单台机器上运行。 每个VM都包含一个操作系统的完整副本,一个或多个应用程序,必需的二进制文件和占用数十GB的库。
墨尘的模型部署1--docker部署tensorflow serving基础知识(二)_第3张图片

安装docker与nvidia-docker

首先参照官网安装docker(最新版本:Docker version 19.03.8,)
How to install docker on Ubuntu 16.04
如果你打算制作或者使用涉及到cuda或者cuddn等与GPU相关的镜像或容器,你需要安装nvidia-docker,请按照repo里的步骤安装nvidia-docker:
How to install nvidia-docker on Ubuntu 16.04

问题1:

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

在这里插入图片描述
解决方法:

# 查看可安装的包
apt-cache showpkg libcurl3-gnutls
# 安装:
sudo apt-get install libcurl3-gnutls=7.47.0-1ubuntu2

安装docker compose

后续待更新……

验证docker 安装是否成功,并加入开机启动

# 验证安装是否成功
docker --version
docker-compose --version
# 启动docker
systemctl start docker
# 查看docker是否已经启动
ps -ef | grep docker
# 重启docker
systemctl restart docker
# 加入开机启动docker
systemctl enable docker

配置docker国内镜像

为了确保docker能快速加载应用程序镜像,配置镜像列表,指向国内的镜像地址。
修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。(如果该文件不存在,需要新建该文件)

[root@aiserver ~]# vi /etc/docker/daemon.json 
{

"registry-mirrors": ["https://registry.docker-cn.com"]

}

设置docker权限组

默认的docker需要sudo权限才能运行,为了让当前用户可以运行docker,需要把当前用户加到docker组里:

sudo groupadd docker
# 确认环境遍历$USER是否正确,如果不对需要设置正确或者执行下面的命令时把$USER替换成当前的用户名。
echo $USER
sudo usermod -aG docker $USER

一、镜像操作

1.1.查看本地镜像

列出已经下载的镜像

docker images

1.2.搜索镜像

在Docker Hub(或阿里镜像)仓库中搜索关键字(如mysql)的镜像

docker search mysql

1.3.下载镜像

在docker 官网搜索需要下载的镜像及版本号docker hub官网

docker pull mysql
docker pull tomcat:8.5-alpine

1.4.删除镜像

docker images
docker rmi 91dadee7afee

1.5.构建镜像

docker build

二、容器操作

2.1.查看正在运行的容器

# 查看帮助信息
docker COMMAND -help
# 查看运行中容器
docker ps
# 查看所有容器包括没有启动的
docker ps -a

2.2.启动容器

普通启动:

docker run --name myTomcat -d tomcat:8.5-alpine

返回值是容器的ID

b3d1907c8c3d085ed3556ca89824d67e2459f6990a00cd78794e9f864d258500
  • –name:自定义容器名,不指定时,docker 会自动生成一个名称
  • -d:表示后台运行容器
  • image-name:指定运行的镜像名称以及 Tag

端口映射启动:

docker run --name myTomcat -d -p 8090:8080 tomcat:8.5-alpine

使用命令:docker run --name container-name:tag -d -p 服务器端口:Docker 端口 image-name:tag

  • –name:自定义容器名,不指定时,docker 会随机自动生成一个名称
  • -d:表示后台运行容器,等同于-d=true, 容器将会在后台运行,否则退出后便是exit状态了。
  • image-name:指定运行的镜像名称以及 Tag
  • -p 指定服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口,且与外界是隔绝的,必须进行端口映射才能访问。

2.3.进入容器、下载包、退出容器

容器名为:mycentos2

# 进入容器
 docker exec -it 容器id或容器名 /bin/bash
# 查看容器里面的进程
 docker top 容器id
# 下载config命令插件
sudo apt-get install -y net-tools 
# 退出容器
exit
  • -it:进行交互式操作
  • /bin/bash:

2.4.容器常用操作

容器名:myTomcat

# 查看安装docker安装信息
docker info
# 停止容器
docker stop 容器id
# 强制停止容器
docker kill 容器id
# 启动已经停止的容器
docker start 容器id
# 删除已经停止的容器
docker rm 容器id
# 删除正在运行的容器
docker rm -f 容器id
# 查看日志
docker logs myTomcat
# 查看容器日志
docker container logs 容器id或容器名
# 查看容器所有信息
docker inspect 容器id或者容器名
# 容器重命令
docker rename [original name]  [new name]

将本地文件上传到容器

docker cp [local file path]  [container id]:[container file path]

挂在本地目录到镜像

docker run -v [local folder path]:[container mounted path] --name [container name] -t -i [image ID | repository name] : TAG] /bin/bash

你可能感兴趣的:(墨尘的模型部署)