Docker学习

Docker 概念

Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。

项目添加 Dockerfile 文件生成镜像,通过运行镜像文件生成容器,项目在容器中运行,镜像文件保存在仓库中,也可以从docker hub中拉取所需要的镜像。

Docker学习

Docker 中有三个核心概念:镜像(Image)、容器(Container)、仓库(Repository)。

  • 镜像:Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。Docker 提供了两种方式来构建镜像,docker commit:通过容器构建;docker build:通过 Dockerfile 文件构建。
  • 容器:image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。容器的存在离不开镜像的支持,他是镜像运行时的一个载体(类似于实例和类的关系)。依托 Docker 的虚拟化技术,给容器创建了独立的端口、进程、文件等“空间”,Container 就是一个与宿机隔离 “容器”。容器可宿主机之间可以进行 port、volumes、network 等的通信。
  • 仓库:Repository是存放 Docker 镜像的仓库,我们可以将自己的镜像推到远程,或者从远程下载镜像到本地运行,正如 GitHub。Docker官方有一个docker hub,我们可以从上面下载官方的镜像。

Docker和k8s的区别与介绍:对Docker三个核心概念解释比较生动形象

Docker 应用实例

利用docker pull命令即可从相关 hub 网站上拉取镜像到本地。

C:\Users\admin\Desktop>docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
284055322776: Pull complete
Digest: sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6
Status: Downloaded newer image for ubuntu:18.04
docker.io/library/ubuntu:18.04

执行docker images即可看到本地所有的镜像

C:\Users\admin\Desktop>docker images
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
ubuntu                  18.04     5a214d77f5d7   2 months ago   63.1MB

docker run可以一步到位创建并运行一个容器,然后进入该容器。进入容器之后一切操作和普通环境一致,可进行Linux安装Anaconda3完整教程和源代码下载

C:\Users\admin\Desktop>docker run -it --name runUbuntuContainer ubuntu:18.04 /bin/bash
root@d4ac7f63b93e:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@d4ac7f63b93e:/# exit
exit

docker ps即可查看运行中的 container

C:\Users\admin\Desktop>docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS         PORTS     NAMES
d4ac7f63b93eubuntu:18.04   "/bin/bash"   About a minute ago   Up 8 seconds             runUbuntuContainer

通过commit容器创建新镜像

C:\Users\admin\Desktop>docker commit --author "faimi" --message "test" d4ac faimi/mayan:v1
sha256:d7150b486d9d31827d65283c571e27e871a055da550f979d8b296f22c8d1d307

执行 docker images 即可看到本地所有的镜像

C:\Users\admin\Desktop>docker images
REPOSITORY              TAG       IMAGE ID       CREATED         SIZE
faimi/mayan             v1        d7150b486d9d   6 seconds ago   63.1MB
ubuntu                  18.04     5a214d77f5d7   2 months ago    63.1MB

先去 docker hub 注册一个账号,然后在终端上登录账号,进行 push。

C:\Users\admin\Desktop>docker login
Authenticating with existing credentials...
Login Succeeded

Logging in with your password grants your terminal complete access to your account.
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/
C:\Users\admin\Desktop>docker push faimi/mayan:v1
The push refers to repository [docker.io/faimi/mayan]
791e0451cb8f: Pushed
824bf068fd3d: Mounted from library/ubuntu
Put "https://registry-1.docker.io/v2/faimi/mayan/blobs/uploads/2deb3f62-18dd-4219-b066-89d85843e068?_state=Y5FhF8UFUgfkcyv5YYYL4ZesGTZez61ei0zgfcFRZeN7Ik5hbWUiOiJmYWltaS9tYXlhbiIsIlVVSUQiOiIyZGViM2Y2Mi0xOGRkLTQyMTktYjA2Ni04OWQ4NTg0M2UwNjgiLCJPZmZzZXQiOjE1MTMsIlN0YXJ0ZWRBdCI6IjIwMjEtMTItMDFUMDc6NTE6MDFaIn0%3D&digest=sha256%3Ad7150b486d9d31827d65283c571e27e871a055da550f979d8b296f22c8d1d307": EOF

参考文献:
从 0 开始了解 Docker
Docker 入门教程
docker入门教程这一篇就够了

上一篇:基于Python Django写博客(二) - 首页


下一篇:openmeetings-install分析(十一)——Admin类询问阶段processInstall分析(4)