Docker技术实践 - 01
- Docker入门
- 1.Docker简介
- 2.Docker核心对象
- 3.Docker应用架构分析
- 4.Docker运行机制
- Docker的安装
-
- Docker服务基本操作
- 7.启动Docker服务
- 8.查看Docker状态
- 9.设置Docker开机自启
- 10.禁用Docker开机自启
- 11.重新启动Docker服务
- 12.查看Docker信息
- 13.停止Docker服务
- 14.设置Docker镜像加速
Docker入门
1.Docker简介
- Docker官网:https://www.docker.com/
- Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
- Docker诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
2.Docker核心对象
- 镜像(Image)
- Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等,可以暂时先将其理解为一个安装程序。
- 容器(Container)
- Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。
3.Docker应用架构分析
- Docker 是一种Client/Server架构的应用程序,参考文档
- 其中:
- Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
- Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中
- Docker Daemon是docker的服务线程,处理Docker客户端命令。
- Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。
4.Docker运行机制
- docker pull: 拉取指令
- 客户端将指令发送给docker daemon
- docker daemon 先检查本地images中有没有相关的镜像
- 如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
- docker run: 执行指令
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
- 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个 ip 地址给容器
- 执行用户指定的应用程序
Docker的安装
5.准备工作
6.安装Docker
在线安装
- 安装一组工具
sudo yum install -y yum-utils
- 设置yum仓库地址
sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum缓存
sudo yum makecache fast #yum 是包管理器
- 安装新版docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
离线安装
- 在Linux环境下创建/root/setup/docker/目录,并将下载好的资源拷贝到此目录
[root@localhost docker]# pwd
/root/setup/docker
[root@localhost docker]# ls -l
total 68132
-rw-r--r--. 1 root root 69637582 Sep 29 16:23 docker-20.10.6.tgz
-rw-r--r--. 1 root root 114793 Sep 29 16:23 docker.bash
-rwxr-xr-x. 1 root root 7546 Sep 29 16:23 install.sh
[root@localhost docker]#
- 执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
- 安装成功后,检查安装状态 ---- docker info命令
[root@localhost docker]# docker info
Client:
Context: default
Debug Mode: false
Server:
Containers: 9
Running: 3
Paused: 0
Stopped: 6
Images: 14
Server Version: 20.10.6
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1160.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.777GiB
Name: localhost.localdomain
ID: 6FGC:ARZ4:67JF:FAO2:4RHY:TUXL:AYG3:HDVJ:SW7F:XRDJ:ITS4:S46Q
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
http://hub-mirror.c.163.com/
Live Restore Enabled: false
Product License: Community Engine
Docker服务基本操作
7.启动Docker服务
systemctl start docker
8.查看Docker状态
systemctl status docker
9.设置Docker开机自启
systemctl enable docker
10.禁用Docker开机自启
systemctl disable docker
11.重新启动Docker服务
systemctl restart docker
12.查看Docker信息
docker info
13.停止Docker服务
systemctl stop docker
14.设置Docker镜像加速
- 修改配置文件 /etc/docker/daemon.json
- 下面命令直接生成文件daemon.json
cat < /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
- 在执行上述指令时,需要确保登录的是root用户,并且,在设置完毕之后,需要重启docker服务