Docker的基本组成
- 镜像(image):
- docker镜像就是一个模板,可以通过这个模板来创建容器服务。tomcat镜像==>run==>romcat容器(提供服务器)
- 通过这个镜像可以创建多个容器(最终服务运行或者项目运行在容器中)
- 容器(container):
- Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
- 可以把容器理解未就是简易的linux系统
- 仓库(repository):
- 仓库是存放镜像的地方
- 仓库分为公有仓库和私有仓库
- Docker Hub(默认是国外的)
Docker安装
帮助文档:https://docs.docker.com/engine/install/
- 卸载Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装包
yum install -y yum-utils # 安装依赖包
sudo yum-config-manager \
--add-repo \
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
如果Docker 拉取镜像速度慢怎么办
1、编辑 /etc/docker/daemon.json 配置文件
创建配置文件目录
$ sudo mkdir /etc/docker
编辑配置文件,如果文件不存在,以下命令会自动创建。
$ sudo nano /etc/docker/daemon.json
将配置信息粘贴到配置文件中,配置信息为 json 格式,可以根据实际需要设置多个国内的镜像服务器。
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
2. 重启 Docker 服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
3. 检查设置是否生效
$ sudo docker info
结果中显示了我们设置的镜像服务器地址,则说明设置已经生效,返回的信息类似下面这样:
[root@centos7 docker]# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.8.0-docker)
scan: Docker Scan (Docker Inc., v0.17.0)
Server:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 20.10.13
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: 2a1d4dbdb2a1030dc5b01e96fb110a9d9f150ecc
runc version: v1.0.3-0-gf46b6ba
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1062.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.091GiB
Name: localhost.localdomain
ID: YPHZ:AQZF:IWOW:Q7S4:O4AG:HJPE:YYW3:GLPP:ANAT:7MSH:WITT:CXEG
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://hub-mirror.c.163.com/
https://mirror.baidubce.com/
Live Restore Enabled: false
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
- 安装docker docker-ce 社区版 ee 企业版
yum makecache faster # 更新yum索引
yum install docker-ce docker-ce-cli containerd.io #安装docker
- 启动docker
systemctl start docker
- 查看docker是否安装成功
docker version
- 测试是否成功
docker run hello-world
- 查看下载helloworld镜像
docker images
- 卸载docker
yum remove docker-ce docker-ce-cli containerd.io # 卸载docker
rm -rf /var/lib/docker # docker的默认工作路径:清除docker路径
rm -rf /var/lib/containerd # docker的默认工作路径
hellowold 启动流程
开始——>docker会在本机寻找镜像,判断本机是否有这个镜像
1、如果有就使用这个镜像,
2、 如果没有就去docker Hub上下载——> docker Hub是否找到,
1、如果找到就下载这个镜像
2、如果没有找到,返回错误
底层原理
Docker是一个client-server结构系统,Docker的守护进程运行在主机上,通过socker从客户端访问
DockerServer接受到Docker-Client的指令,就会执行这个命令
docker利用的宿主机的内核。