Docker 三要素 + 安装 + hello-world
Docker一般安装在Linux上,windows上也可以安装;2013年出来,2017年火爆起来!
三要素:
镜像(image)—模版(类)
容器(container)—模版的实例(类的实例)
仓库(repository)---托管镜像
Docker镜像(image)就是一个只读的模版,镜像可以用来创建Docker容器,一个镜像可以创建很多容器;
Docker利用容器(Container)独立运行的一个或一组应用,容器是用镜像创建的运行实例;
它可以被启动,开始,停止,删除,每个容器都是相互隔离的,保证安全的平台;
可以把容器看作是一个简易版的Linux环境 (包括root用户权限,进程控制,用户空间和网络空间等)和运行在其中的应用程序,
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的;
这里是在windows上安装了一个Linux虚拟机系统是Ubuntu
如何查看Ubuntu系统的版本号呢?
命令如下:
cat /proc/version
显示如下:
Linux version 4.10.0-28-generic (buildd@lgw01-12) linux内核版本号
gcc version 5.4.0 gcc编译器版本号
Ubuntu 5.4.0-6ubuntu1 Ubuntu版本号
uname -a
显示linux的内核版本和系统是多少位的:X86_64代表系统是64位的。
lsb_release -a
显示如下:
Distributor ID: Ubuntu //类别是ubuntu
Description: Ubuntu 16.04.3 LTS //16年3月发布的稳定版本,LTS是Long Term Support:长时间支持版本,支持周期长达三至五年
Release: 16.04 //发行日期或者是发行版本号
Codename: xenial //ubuntu的代号名称
我这里的Ubuntu的代号是:bionic 版本号:18.04
安装步骤如下:参考文档:https://www.cnblogs.com/wt7018/p/11880666.html
1.如果之前安装过,需要先卸载:
sudo apt-get remove docker docker-engine docker.io containerd runc
2.安装Docker:
sudo apt-get update # 安装依赖包 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # 添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 验证您现在是否拥有带有指纹的密钥 sudo apt-key fingerprint 0EBFCD88 # 设置稳定版仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
3.安装Docker Engine-Community:
# 更新 $ sudo apt-get update # 安装最新的Docker-ce sudo apt-get install docker-ce # 启动 sudo systemctl enable docker // 设置Docker开机启动 sudo systemctl start docker
4.测试:
sudo docker run hello-world sudo docker images // 查看docker里是否有镜像
5.输入docker --version 或者使用 sudo docker version
显示:Docker version 20.10.5, build 55c4c88
6.为了下载和使用docker镜像更快一些,我们使用国内比较流行的阿里云/网易云等加速器
进入阿里云控制台,然后找到容器镜像服务 目的是找到镜像加速器--->
找到属于自己的镜像加速地址:https://g7x81nwu.mirror.aliyuncs.com
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' // 这里可以使用 vim /etc/docker/daemon.json // 接着把下面内容添加进去即可 { "registry-mirrors": ["https://g7x81nwu.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload // 重新加载配置文件 sudo systemctl restart docker // 重启Docker后台服务
补充:
mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录(mkdir -p xx/yy的好处就是一次可以创建多级文件夹,若xx文件夹不存在,则先创建xx文件夹,然后在xx文件夹下创建yy文件夹)
7.检查加速器是否生效:
ps -ef | grep docker
或者使用:sudo docker info | grep Mirrors -A 1
显示在docker的进程后有没有挂在着阿里云的加速地址,有的话则证明配置完成;
8.搜索镜像:
可以使用docker search命令搜索存放在Docker Hub中的镜像,例如:
sudo docker search java
执行该命令后,Docker就会在Docker Hub中搜索含有java这个关键词的镜像仓库。执行该命令后可以看到类似于如下的表格:
该表格包含五列,含义如下:
NAME:镜像仓库名称。
DESCRIPTION:镜像仓库描述。
STARS:镜像收藏数,表示该镜像仓库的受欢迎程度,类似于GitHub的Stars。
OFFICAL:表示是否为官方仓库,该列标记为[OK]的镜像均由个软件的官方项目组创建和维护。由结果可知,java这个镜像仓库是官方仓库,而其他仓库都不是官方镜像仓库。
AUTOMATED:表示是否为自动构建镜像仓库。
9.docker从镜像仓库下载mysql5.7版本:
sudo docker pull mysql:5.7
此时查看镜像---> sudo docker images,就会发现mysql已经存在:
10.docker run hello-world
具体做了什么呢?
开始,Docker在本机中寻找hello-world镜像----本机是否存在---> 存在,就以该镜像为模板生产容器实例并运行;如果不存在,去Docker Hub(或者阿里云仓库)上查找该镜像 ----> 能找到 下载该镜像到本地----> 以该镜像为模板生产容器实例运行 ---> Hub仓库找不到则返回失败错误,查不到该镜像;