8.Docker学习

尚硅谷-Docker教程 笔记

第一章 Docker简介

1.是什么?

一种容器化虚拟技术。将 应用程序+运行环境+配置依赖 打包成镜像,运行镜像成为容器实例。而Docker容器在任何操作系统上都是一致的,这就实现了系统的跨平台、跨服务器,达到系统平滑移植。“一次镜像,到处运行”。

2.容器与虚拟机的比较

虚拟机是在硬件层面实现虚拟化

Docker容器是在操作系统层面实现虚拟化

与传统虚拟机相比,Docker优势体现在启动速度快、占用体积小

3.Docker应用场景

 4.下载Docker

两个网站:Docker官网、Docker Hub官网

第二章 Docker安装

1.Docker的基本组成(Docker三要素):镜像、容器,仓库

(1)一个镜像可以创建多个容器。docker镜像文件相当于类,docker容器实例相当于实例对象

(2)容器是用镜像创建的运行实例,容器就类似于一个虚拟化的运行环境。可以把容器看做是一个简易版的 Linux 环境和运行在其中的应用程序

(3)仓库是集中存放镜像文件的地方,类似于Maven仓库存放各种jar包,github仓库存放各种git项目。Docker公司提供的官方registry叫Docker Hub。

  仓库分为公开(public)仓库和私有仓库(private),最大的公开仓库是Docker Hub,国内的公开仓库有阿里云、网易云等

(4)需要正确的理解仓库/镜像/容器这几个概念:

  • Docker 本身是一个容器运行载体或称之为管理引擎。
  • 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
  • 仓库就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了

(5)          Docker平台架构图                         Docker工作原理

 2.安装步骤

3.阿里云镜像加速:拉镜像的时候快一些

4.永远的HelloWorld

5.底层原理:为什么Docker会比VM快?

(1)docker有着比虚拟机更少的抽象层

(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核

 第三章 Docker常用命令

1.帮助启动类命令

(1)启动docker:systemctl start docker

(2)停止docker:systemctl stop docker

(3)重启docker:systemctl restart docker

(4)查看docker状态:systemctl status docker

(5)查看docker概要信息:docker info

2.镜像命令

(1)docker images:列出本地主机上的所有镜像

(2)docker search 镜像名字:查找镜像

(3)docker pull 镜像名字:下载镜像。不带tag默认下载最新版本,等价于:docker pull 镜像名字:latest

    docker pull 镜像名字:tag

(4)docker system df:查看镜像/容器/数据卷所占的空间

(5)docker rmi 镜像名字/镜像ID:删除镜像

    docker rmi -f 镜像名字/镜像ID:带参数表示强制删除

  a. docker悬虚镜像

3.容器命令

  a.有镜像才能创建容器,这是根本前提

(1)docker run -it 镜像名字 命令:新建+启动容器

例子:docker run -it centos /bin/bash

说明:

  • -i:交互式操作,-t:终端(i和t结合使用),centos:centos最新镜像,/bin/bash:命令,和容器交互的shell。
  • 退出终端,输入exit。ps -ef:可以查看容器里面的进程信息

(2)docker ps [选项]:列出当前所有正在运行的容器

例子:docker ps

说明:-a:列出当前所有正在运行的容器+历史上运行过的。-l :显示最近创建的容器

(3)退出容器:两种退出方式

  exit:run进去容器,exit退出,容器停止

  ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止

(4)docker start 容器ID/容器名:启动已经停止的容器

(5)docker restart 容器ID/容器名:重启容器

(6)docker stop 容器id/容器名:停止容器

(7)docker kill 容器id/容器名:强制停止容器

(8)docker rm 容器id:删除已停止的容器

a.有镜像才能创建容器,这是根本前提。所以提前要下载好镜像

b.启动守护式容器(后台服务器):在大部分的场景下,我们希望docker的服务是在后台运行的,

   我们可以通过 -d 指定容器的后台运行模式:docker run id 容器名

 例如:docker run -d centos

c.redis前后台启动演示:

前台交互式启动:docker run -it redis:6.0.8

后台守护式启动:docker run -d redis:6.0.8

d.查看容器日志:docker logs 容器ID

e:查看容器内运行的进程:docker top 容器id

f:查看容器内部细节:dockers inspect 容器id

g:重新进入正在运行的容器并以命令行交互:

  docker exec -it 容器id bin/bash

  docker attach 容器id

  (1)上述两个的区别

  (2)推荐使用docker exec命令,因为退出容器终端,不会导致容器的停止

  (3)一般用-d后台启动的程序,再用exec进入对应容器实例

h:从容器内拷贝文件到主机

i:导入和导出容器

4.总结

 1 attach    Attach to a running container                 # 当前 shell 下 attach 连接指定运行镜像
 2 
 3 build     Build an image from a Dockerfile              # 通过 Dockerfile 定制镜像
 4 
 5 commit    Create a new image from a container changes   # 提交当前容器为新的镜像
 6 
 7 cp        Copy files/folders from the containers filesystem to the host path   #从容器中拷贝指定文件或者目录到宿主机中
 8 
 9 create    Create a new container                        # 创建一个新的容器,同 run,但不启动容器
10 
11 diff      Inspect changes on a container's filesystem   # 查看 docker 容器变化
12 
13 events    Get real time events from the server          # 从 docker 服务获取容器实时事件
14 
15 exec      Run a command in an existing container        # 在已存在的容器上运行命令
16 
17 export    Stream the contents of a container as a tar archive   # 导出容器的内容流作为一个 tar 归档文件[对应 import ]
18 
19 history   Show the history of an image                  # 展示一个镜像形成历史
20 
21 images    List images                                   # 列出系统当前镜像
22 
23 import    Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]
24 
25 info      Display system-wide information               # 显示系统相关信息
26 
27 inspect   Return low-level information on a container   # 查看容器详细信息
28 
29 kill      Kill a running container                      # kill 指定 docker 容器
30 
31 load      Load an image from a tar archive              # 从一个 tar 包中加载一个镜像[对应 save]
32 
33 login     Register or Login to the docker registry server    # 注册或者登陆一个 docker 源服务器
34 
35 logout    Log out from a Docker registry server          # 从当前 Docker registry 退出
36 
37 logs      Fetch the logs of a container                 # 输出当前容器日志信息
38 
39 port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT    # 查看映射端口对应的容器内部源端口
40 
41 pause     Pause all processes within a container        # 暂停容器
42 
43 ps        List containers                               # 列出容器列表
44 
45 pull      Pull an image or a repository from the docker registry server   # 从docker镜像源服务器拉取指定镜像或者库镜像
46 
47 push      Push an image or a repository to the docker registry server    # 推送指定镜像或者库镜像至docker源服务器
48 
49 restart   Restart a running container                   # 重启运行的容器
50 
51 rm        Remove one or more containers                 # 移除一个或者多个容器
52 
53 rmi       Remove one or more images       # 移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
54 
55 run       Run a command in a new container              # 创建一个新的容器并运行一个命令
56 
57 save      Save an image to a tar archive                # 保存一个镜像为一个 tar 包[对应 load]
58 
59 search    Search for an image on the Docker Hub         # 在 docker hub 中搜索镜像
60 
61 start     Start a stopped containers                    # 启动容器
62 
63 stop      Stop a running containers                     # 停止容器
64 
65 tag       Tag an image into a repository                # 给源中镜像打标签
66 
67 top       Lookup the running processes of a container   # 查看容器中运行的进程信息
68 
69 unpause   Unpause a paused container                    # 取消暂停容器
70 
71 version   Show the docker version information           # 查看 docker 版本号
72 
73 wait      Block until a container stops, then print its exit code   # 截取容器停止时的退出状态值
View Code

第四章:Docker镜像

1.是什么?

(1)镜像是一个轻量级、独立的软件包,包含:应用程序和配置依赖

(2)镜像是分层的,使用的是联合文件系统

(3)Docker镜像加载原理

(4)为什么Docker镜像要采用这种分层结构呢?

2.Docker镜像commit操作案例

第五章 本地镜像发布到阿里云

第六章 本地镜像发布到私有库

1.本地镜像发布到私有库流程

2. Docker Registry是官方提供的工具,可以用于构建私有镜像仓库

3.将本地镜像推送到私有库

第七章 Docker容器数据卷

第八章 Docker常规安装简介

 

posted @ 2022-09-22 17:14  midiyu  阅读(34)  评论(0编辑  收藏  举报