文章目录
前言
从零开始入门封装本地conda环境,本文主要讲解打包环境前的Docker配置工作,如不需要配置Docker,可直接跳转:
Docker 封装anaconda环境,生成镜像并打包,纯小白一文读懂(二)
提示:以下是本篇文章正文内容,下面案例可供参考
一、Docker是什么?
1.虚拟机和Linux容器
说到Docker就必须了解虚拟机和Linux容器,虚拟机可以实现在一种操作系统里面运行另一种操作系统,比如在 Windows 系统里面运行 Linux 系统等,而且不会对实际的电脑产生影响,不想用时将虚拟机相关文件删掉即可,用户可以通过虚拟机还原软件的原始环境,实际上就是解决了配置环境的问题。尽管它有资源占用多,启动慢等缺点。
Linux容器是为了解决虚拟机的确缺点而生的,Linux 发展出了另一种虚拟化技术:Linux 容器(Linux Containers,缩写为 LXC)。Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。由于容器是进程级别的,相比虚拟机有很多优势。像启动快、资源占用少等。
而Docker 就是属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。就像一开始说的,Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
二、Docker用途
这里引用网上某博主的部分内容,Docker 的主要用途,目前有三大类。
(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
三、Docker安装
1.Dcoker手动在线安装:
参考教程: 菜鸟入门Docker.
2.Docker离线安装
参考教程: Docker - 离线安装.
3.官方脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
参考教程: Docker教程.
●Error解决:
域名无法解析:参考教程.
E: Sub-process /usr/bin/dpkg returned an error code (1): 参考教程.
PS:安装Docker需要管理员权限,所以你需要使用有管理员权限的账号来登录服务器进行安装。
四、Docker启动与停止
1.启动Docker
sudo service docker start
2.停止Docker
sudo service docker stop
3.重启Docker
sudo service docker restart
五、Docker配置
1.将用户加入 Docker 用户组
Docker 中的所有docker操作都需要用户具有 sudo 权限,为了避免每次命令都需要在指令前输入sudo,建议将用户加入Docker用户组。(PS:该步骤可以跳过,后续docker指令直接添加sudo前缀即可 。)
# 添加docker用户组:
sudo groupadd docker
# 将当前用户加入到docker用户组:
sudo gpasswd -a ${USER} docker
# 重启docker服务:
sudo service docker restart
执行完这几句后再重新使用你的用户名登录一下服务器,该用户就可以在输入docker指令时不用再添加 sudo 。
PS : ${USER}:代指你远程登录服务器的用户名。例如,我登录服务器的用户名为 c 则输入:
sudo gpasswd -a c docker
2.配置daemon.json
由于在安装完Docker,启动docker服务后,我们在打包环境的时候需要拉取 基础image文件(PS:image文件是Docker镜像文件。)但因为默认网址是国外的,直接拉取会报错,显示超时,所以需要配置国内镜像。
(1)首先进入Docker文件下:
cd /etc/docker
你会发现该目录下只有一个key.json 文件,所以你需要创建一个daemon.json。(PS:我已经创建过daemon.json)
(2)创建daemon.json:
sudo vim daemon.json
进入编辑文件内后按一下 a 开始插入字符, 输入以下内容:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
}
编辑完后按下 Esc键退出插入模式, 然后直接输入 :wq保存并退出daemon.json。如果不保存便退出,则输入 :q!。
3.重启Docker
保存后,重启一下docker。
到此为止,打包环境的前序工作便结束了。下面便开始正式进行打包conda环境。