Docker入门指南

Docker是统一开发、测试和部署环境的软件系统环境管理工具,自2013年开始兴起。与传统的虚拟机相比,Docker共享内存,减少了资源开销。

1. 核心概念

Docker 有三大核心组件:repositories(仓库)、images(镜像)、container(容器)。其所有应用及操作,均围绕这三类组件开展。

repositories仓库)是集中存放Docker镜像的场所,就像放置软件安装光盘的光盘盒。它一般布置在远程的云服务器上,有私有仓库和公共仓库之分(一般公共仓库就是指 DockerHub)。每个仓库中可以存储多个镜像,且每个镜像上都可以有不同的标签。

images镜像)是创建 container(容器)的模板,相当于系统安装光盘。它包括操作系统和App(应用程序)的运行环境,可以到 repositories(仓库)中去下载。

container容器)是根据 images(镜像)创建的一个实际的(虚拟)软件运行环境,使用Docker时,我们的应用程序就运行在其中。

2. Docker 服务的架构

Docker服务是一种典型的C/S架构,算上云端的镜像仓库,它由三部分构成:DockerClient、DockerHost 和 DockerRegistry。如下图所示:

Docker架构示意图

DockerClient 是 Docker 服务程序与用户(使用者)的交互界面,一般为 Doc 命令行窗口形式,它负责接收 Docker 操作指令并返回操作结果及输出日志。

DockerHost 是 Docker 服务的后台管理程序,它负责按用户指令操作 Docker 容器与镜像及与仓库的通信。它可以运行在本机或本地服务器上(如 Windows 系统下安装的 Docker Desktop)。

DockerRegistry 是 Docker仓库的管理程序,它负责根据 DockerHost 的请求来收发镜像。它一般运行在云端,由专业的云服务提供商(或公司的对应技术部门)负责,不需要 Docker 使用者做任何操作。

3. 常用命令

Docker 的常用命令如下图所示,主要涉及获取镜像、创建及进入容器、从容易生成镜像和上传镜像四类。如下图所示:
在这里插入图片描述

从Dockerfile创建镜像,常用 build 命令,如:

# docker build -f Dockerfile文件地址
docker build -f /path/Dockerfile

从仓库拉取镜像,常用 pull 命令,如:

# docker pull  镜像名称:镜像标签
docker pull continuumio/anaconda3:latest

从镜像创建容器,常用 run 命令1,如:

# docker run  [可选参数]  镜像名称:镜像标签  /bin/bash
docker run -it  --name="env_p38"  -p 8001:8001  -p 6375:22/tcp  --privileged -v D:\MyProject:/home:rw  --ipc=host  --gpus all -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all  hadeszsc/my_anaconda3:2022.07.18  /bin/bash

启动或停止容器,常用 start 或 stop 命令,如:

# docker start/stop  容器名称
docker start/stop my_container

(启动容器后)进入出容器内部(操作界面),常用 exec 命令2,如:

# docker exec  [可选参数]  容器名称(或容器id)  /bin/bash
docker exec -it 7ec43d247350b33b4789b8b38afdcd6ce48d5076e13fb071b57e5b9a6d0808dc /bin/bash

从容器生成镜像,常用 commit 命令,如:

# docker commit  -m="镜像描述"  -a="作者"  容器id  仓库名称/镜像名称:镜像标签
docker commit -m="test" -a="author" c63187fa79ab37b432803255eea371aba93f615567369a722d7ddd33aea290da hadeszsc/my_anaconda3:test

镜像重命名,常用 tag 命令,如:

# docker tag 旧镜像名 新镜像名
docker tag hadeszsc/tf-gpu_1:2.9 hadeszsc/tf-gpu:2.9

将镜像上传的到仓库,常用 push 命令,如:

# docker push  仓库名称/镜像名称:镜像标签
docker push hadeszsc/my_anaconda3:2021.05

4. Docker 的安装及使用

Windows系统中,Docker的安装方法,请详见作者文章:Docker入门指南:Docker 安装方法(Win10 家庭版)

5. 基于 Docker 搭建深度学习开发环境

本节将介绍如何基于Docker,搭建一种跨平台、便携式的人工智能开发环境。内容请详见作者文章:Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境


  1. run 命令可选参数详情 ↩︎

  2. exec 命令可选参数详情 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值