1.1Docker 应用场景及理念
微服务领域
:
有助于
Microservices
的落地和部署
隔离应用
:
充分利用物理机资源,同时能够整合服务器资源
(
隔离应用、在同一
硬件上运行更多工作负载
)
快速、一致地交付您的应用程序
:
提高开发效率,测试效率,部署效率,有利于
DevOps
的落地,
CICD
Docker
理念:
Build,Ship and Run Any App
,
Anywhere,
在任何地方构建、
发布并运行任何应用程序(一次封装,到处运行
)
1.2docker的架构
docker
由三部分组成:
Client
客户端、
docker
主机、
Registry
镜像仓库服务器
docker
主机
:
docker daemon
:
docker
安装后,会以后台运行、守护进程的形式存在
images
镜像: 镜像可以用来创建
docker
容器,一个镜像可以创建很多容器
containers
: 镜像和容器的关系类似面向对象设计中的类和对象
,
镜像是容器的模板,容器是基于镜像创建出来的。
容器可以被创建、启动、停止、删除等等。
注意:
Docker
镜像(
Image
)就是一个只读的模板!也即
不可以修改镜像
。
Registry
:镜像注册服务器
https://hub.docker.com
一个
docker Registry
(仓库注册服务器) 中可以包含多个
Repository
(仓库);
每个仓库可以包含多个标签
/
版本(
Tag
);每个标签对应一个镜像。
仓库分为公开仓库(
Public
)和私有仓库(
Private
)两种形式
,
公开仓库就是
docker
官方仓库
,
私有仓库是自己搭建的
docker
私服
Client
:
docker
终端
安装好
docker
中,同时包含了
docker
客户端,客户端负责执行
docker
命令,
发送给
docker
主机中的
docker
守护进程,例如:从仓库下载镜像,通过镜像创
建容器等等。
2.1CentOS7 安装 docker
官网:
http://www.docker.com
安装手册:
https://docs.docker.com/install/linux/docker-ce/centos(CE-
社区版
)
2.2安装需要的软件包
yum-utils 提 供 了 yum-config-manager 相 关 功 能,
device-mapper-persistent-data
和
lvm2
是设备映射器驱动程序所需要的。
yum install -y yum-utils device-mapper-persistent-data lvm2
如果遇到说遇到报错,例如网元怎么怎么样的,多半是少了配置信息
1、进入到 yum 的 repos 目录
cd /etc/yum.repos.d/
2、修改 centos 文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
3、生成缓存更新,第一次做这个操作会十分的缓慢,大概等待两分钟左右
yum makecache
运行 yum update 并重新安装 vim
yum update -y
yum -y install vim
2.3设置 docker 下载镜像
docker
官方下载地址
:
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
2.4更新 yum 软件包索引
我们在更新或配置
yum
源之后
,
通常都会使用
yum makecache
生成缓存,这个
命令是将软件包信息提前在本地缓存一份
,
用来提高搜索安装软件的速度
yum makecache fast
如果你是cen8的话使用下面这个命令
dnf makecache
2.5安装 DOCKER CE
yum install -y docker-ce docker-ce-cli containerd.io
如果报错,重新执行安装一次
2.6启动 docker
systemctl start docker
systemctl enable docker #
设置开机自启动
docker version
版本验证
docker 卸载
systemctl stop docker
yum remove -y docker-ce
rm -rf /var/lib/docker
查看docker启动状态
systemctl status docker
3.1容器镜像服务
在阿里云官网搜索容器镜像服务
然后直接cv操作文档的内容即可
4.1启动一个hello-world
4.1.1运行 hello-world 程序
docker run hello-world:
以镜像为模板创建
docker
容器并运
成功了!!!
4.1.2运行流程如下
首先docker容器必须是运行着,我们可以使用docker pull下载镜像,然后这一个镜像(image)就可以创建多个实例,就像我docker run hello-world 其中hello-world就是镜像,在他的基础上我们运行的都是他的实例,然后将这个实例运行起来。
使用docker images能够查看到镜像信息
5.1 Docker常用命令
版本信息
:
docker version
详细信息
:
docker info
帮助文档
:
docker --help
//
列出所有的
docker
命令
启动
docker
服务
:
systemctl start docker
停止
docker
服务
:
systemctl stop docker
查看服务状态
:
systemctl status docker
重启
docker
服务
:
systemctl restart docker
开机启动 :
systemctl enable docker
docker images: 列出本机镜像
docker images -q
-q:
只显示镜像ID
--no-trunc
:
显
示完整的镜像ID
docker search 镜像名称: 查找镜像 //例如:docker search tomcat
docker search -s 30 tomcat //-s: 列出收藏数不小于指定值的镜像
#
或
docker search --filter=stars=30 tomcat //过滤器
docker pull 镜像名称:镜像版本: 下载镜像 //例如:docker pull tomcat 使用 docker images 查看镜像列表
docker pull redis:3.2 下载指定版本的 redis
docker pull centos:下载 centos 镜像
docker pull nginx: 下载 nginx 镜像
docker pull tomcat: 下载 tomcat 镜像
docker pull java:8 下载 jdk8 镜像
docker rmi tomcat
docker rmi reids:3.2 #删除指定版本的镜像
docker rmi 镜像id #根据镜像id删除镜像
docker rmi -f hello-world#强制删除已经创建了实例的镜像
docker rmi tomcat redis #删除多个镜像,使用空格间隔不同的镜像名称
docker rmi -f $(docker images -q) #删除所有镜像