Docker入门到实践

docker中文社区

什么是 Docker | docker-practice.com

docker-ce引擎版本:20.10.16

id可以只打前几位,能区分就行。

不推荐装MySql

查找容器两法

  • 容器id
  • 容器名:tag — tag通过images可以查,不能省tag!! (latest的tag可以省

名词概念

容器 > 镜像 > 程序

  • **dockfile:**自动化的脚本,自动创建镜像Image。
  • Image镜像: 相当于虚拟机的快照,通过一个镜像可以创建多个容器。 ---- 像应用商店的APP、Cent7.iso
    • tomcat镜像 ===> run ==>tomcat容器(提供服务器),最终在容器中跑项目。
    • 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
    • 所有的应用,直接打包 Docker 镜像,就可以直接跑起来! 得到镜像的方法如下
      • 从远程仓库下载
      • 朋友拷贝给你
      • 自己制作一个镜像 DockerFile
  • Container容器: 相当于虚拟机,有着一整套的环境,和其他环境互不干扰。 被一个进程管理,进程停,容器停。 —虚拟机
  • 仓库Repository: 存放镜像的地方!! 类似Maven仓库,分为公有和私有。
    • 例子:默认Docker Hub国外慢,阿里云镜像加速快
image-20220526234442510

相较于以往的jar包部署,Docker更方便部署。

image-20220526230512571

虚拟、容器技术

1、传统虚拟技术

加载Guest OS

每次新建都需重新加载内核,进行引导

须要虚拟的有:

硬件、操作系统、内核。 — 典例:虚拟机

image-20220526232235444

2、Docker虚拟技术

有着更少的抽象层

方便的升级和扩缩容

项目打包为一个镜像,须要升级时升级镜像即可。

操作系统层面的虚拟化技术,利用宿主机的内核

无硬件、无OS,新建容器无需重新加载内核,更加轻便。

image-20220526233237679

安装Docker

Centos7下安装Docker

Centos7安装docker

使用虚拟机192.168.86.128安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看内核版本   --- 要高于3.10
[root@lzwEdu01 ~]# uname -r
3.10.0-957.el7.x86_64

# 查看OS
[root@lzwEdu01 ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

帮助文档:https://docs.docker.com/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 1、卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 3、设置yum的docker的源(默认国外,改为阿里云
国外慢: https://download.docker.com/linux/centos/docker-ce.repo
阿里云快: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 狂神额外更新索引
yum makecache fast

# 4、安装docker引擎,是引擎哦 (docker-ce社区版,ee商业版
查看可安装的版本 yum list docker-ce --showduplicates | sort -r
安装最新版 yum install docker-ce docker-ce-cli containerd.io

# 5、看版本
docker version

# 6、启动docker
systemctl start docker

# 7、运行hello world (先拉取镜像hello-world
docker run hello-world

默认工作目录:/var/lib/docker

image-20220527003822222

阿里云镜像加速

可以省略

支付宝阿里云账号

搜索:云服务 —> 容器镜像服务 —> 镜像工具 —> 镜像加速器 —> CentOs

1
2
3
4
5
6
7
8
9
10
11
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4gf7t49m.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker --- 重启

HelloWorld回顾

docker run hello-world 命令的步骤有:

image-20220527122342623

底层原理

image-20220527123137397