docker
Docker 包括三个基本概念:
- 镜像(
Image):Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 - 容器(
Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 - 仓库(
Repository):仓库(Repository)类似Git的远程仓库,集中存放镜像文件。
镜像 Docker 镜像就是系统环境的载体。
Docker 镜像是 Docker 容器运行时的只读模板,类似于虚拟主机本体。
从 Docker 镜像仓库中可以找到大量可用的镜像,你可以按照自己的需求自行搜索,比如寻找一个安装了 PyTorch+Jupyter Notebook 的系统镜像。
容器 每一个 Docker 容器都是从 Docker 镜像中创建的。
之所以有容器的存在,因为镜像是只读的。当我们通过镜像运行一个系统环境(虚拟机)时,Docker 就会创建一个容器来容纳这个系统环境。我们在这个环境中进行的修改(包括创建文件、安装新软件包等等),相当于都是在容器中进行的,不会影响到原来的镜像。
在我们想分享修改后(比如安装了新软件包)的系统时,我们可以执行“commit”命令。这时被我们修改过的容器,就会提交到镜像中,形成新版本的镜像。这个过程特别像GitHub的使用。我们从GitHub上clone下代码,修改,然后直到 commit 提交。
简单来说,容器可以视为镜像的“运行态”。
Docker Hub 官方的镜像发布网站,你在这里可以找到自己需要的镜像。
然而在国内,我们往往使用国内的镜像库,比如阿里云、网易蜂巢等等。
Linux安装docker
1.卸载旧版本
sudo apt-get remove docker docker-engine docker.io
sudo apt-get upgrade
3.我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
4.切换阿里源(添加软件源的 GPG 密钥)
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
5.安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker常用指令
拉取hub上的镜像文件
docker pull
更改镜像tag
docker tag firstimage harryandjack/firstimage
然后push到dockerhub
docker push harryandjack/firstimage
更改Dockerfile中的内容(:wq退出,i编辑)
vi Dockerfile
查看docker镜像
docker images
查看运行中的docker容器
docker ps
docker ps -a
删除docker容器
docker rm <container id>
# 删除所有stop的容器
docker container prune
按照Dockerfile来build镜像
docker build -t harryandjack/test .
docker run -it harryandjack/webapp