Docker安装
Docker的基本组成
镜像( image) :
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务, tomcat镜像==> run ==> tomcat01容器(提供服务器),
通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的) .
容器( container) :
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(refository) :
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub (默认是国外的)
阿里云…都有容器服务器(配置镜像加速! ),但是阿里云的镜像加速目前好像不稳定,我现在用的是华为云的。
安装Docker
环境准备(教程用的是Centos,现在官方文档好像没有CentOs的安装了)
- 需要会一点点的Linux的基础
- CentOS 7
- 我们使用Xshell (随便用哪个都可以)连接远程服务器进行操作!
环境查看
#系统内核是 3.10 以上的
[root@centos moran]# uname -r
3.10.0-1160.88.1.el7.x86_64
[root@centos moran]# 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/engine/install/ubuntu/
# 查看一下下载的这个 hello-world 镜像
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 18 months ago 13.3kB
了解:卸载docker
# 1、卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2、删除资源
rm -rf /var/1ib/docker
# /var/1ib/docker docker的默认工作路径!
非root用户操作Docker,如何解决sudo麻烦?
要允许非root用户操作Docker而不需要使用sudo
,您可以将用户添加到Docker组中。以下是在Ubuntu上如何做的步骤:
-
确保Docker已经安装并正在运行。如果尚未安装Docker,请按照之前的说明安装它。
-
创建一个名为
docker
的组(如果它不存在)并将您的用户添加到该组。请将<your_username>
替换为您的实际用户名:
sudo groupadd docker
sudo usermod -aG docker <your_username>
- 更新组成员身份,以便新的组成员立即生效,您可以注销并重新登录,或者运行以下命令来应用更改:
newgrp docker
- 检查您是否成功添加到
docker
组:
groups
您应该会看到您的用户名和docker
组。
- 现在,您的用户应该能够在不使用
sudo
的情况下运行Docker命令。您可以尝试运行docker
命令来验证:
docker --version
您将能够正常运行Docker命令而无需使用sudo
。
请注意,将用户添加到docker
组会授予他们与Docker相关的特权,因此请确保只向可信任的用户授予这些权限,并严格限制Docker容器的访问权限,以确保安全性。
阿里云镜像加速
1.登录阿里云找到容器服务
2.找到镜像加速地址
回到HelloWorld流程
底层原理
Docker是怎么工作的呢?
Docker是一个Client - Server结构的系统, Docker的守护进程运行在主机上。通过Socket从客户端访问 !
DockerServer接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快?
1、Docker有着比虛拟机更少的抽象层。
2、docker 利用的是宿主机的内核, vm需要是Guest OS.
所以说,新建一个容器的时候,docker不需要想虚拟机一样重新加载一个操作系统内核 ,避免引导。虚拟机是加载Guest OS ,分钟级别的,而docker是利用宿主机的操作系统吗,省略了这个复杂的过程,秒级!
之后学习完毕所有的命令,再回过头来看这段理论,就会很清晰!