一、Docker介绍和使用场景
1、什么是Dokcer
一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,
也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;使⽤用go语⾔言编写,在LCX(linux容器器)基础上进行封装。
简单来说:
1)就是可以快速部署启动应用
2)实现虚拟化,完整资源隔离
3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)
2、为什么要用Docker
1)提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行
2)快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动。
3)组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用。
4) 更好的资源隔离和共享
一句话:开箱即用,快速部署,可移植性强,环境隔离。
二、Linux云服务器器Centos7安装Docker
1、添加yum源
# yum install epel-release –y
# yum clean all
# yum list
2、安装并运行Docker
# yum install docker-io –y
# systemctl start docker
3、检查安装结果
# docker info
4、管理Docker守护进程
# systemctl start docker #运行Docker守护进程
# systemctl stop docker #停止Docker守护进程
# systemctl restart docker #重启Docker守护进程
三、Docker仓库、镜像、容器器核心知识
1、Docker镜像 (Docker images):容器器运⾏行行时的只读模板,操作系统+软件运⾏行行环境+⽤用户程序
2、Docker容器(Docker containers):容器器包含了某个应用运行所需要的全部环境
3、Docker仓库 (Docker registeries):用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服。
四、Docker容器命令
1、搜索镜像:docker search xxx(镜像名称)
2、列出当前系统存在的镜像:docker images
3、拉取镜像:docker pull xxx
xxx是具体某个镜像名称(格式 REPOSITORY:TAG)
REPOSITORY:表示镜像的仓库源,TAG:镜像的标签
4、运行一个容器:docker run -d --name "fengma_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management
docker run: 运行一个容器
-d: 后台运行
-p: 端口映射
rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默认使⽤用最新的。
--name "xxx": 容器名称
5、列举当前运行的容器:docker ps
6、检查容器内部信息:docker inspect 容器器名称
7、删除镜像:docker rmi IMAGE_NAME
强制移除镜像不管是否有容器器使⽤用该镜像 增加 -f 参数。
8、停止某个容器:docker stop 容器名称
9、启动某个容器:docker start 容器名称
10、移除某个容器器: docker rm 容器名称 (容器必须是停止状态)
五、使用Docker部署Nginx服务器器
1、获取镜像 (首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)
docker search nignx
2、列举镜像:docker images
3、拉取镜像: docker pull nignx
4、启动多个容器实例
docker run -d --name "fengma_nginx1" -p 8088:80 nginx
docker run -d --name "fengma_nginx2" -p 8089:80 nginx
docker run -d --name "fengma_nginx3" -p 8090:80 nginx
六、公司中Docker镜像仓库使用
1、为啥要用镜像仓库
2、官方公共镜像仓库和私有镜像仓库
官方公共镜像仓库: 基于各个软件开发或者有软件提供商开发的
非官方:其他组织或者公司开发的镜像,供⼤大家免费试用
私有镜像仓库:用于存放公司内部的镜像,不提供给外部试用。
七、构建自己的镜像仓库(使用阿里云搭建自己的镜像仓库)
1、使用阿里云镜像仓库
2、登录: docker login --username=用户名 registry.cnshenzhen.aliyuncs.com(选择自己仓库位置)
3、推送本地镜像:docker tag [ImageId] registry.cnshenzhen.aliyuncs.com/fengma/fengma_images:[镜像版本号]
例子:
docker tag 2f415b0e9a6e registry.cnshenzhen.aliyuncs.com/fengma/fengma_images:xd_rabbitmq-v1.0.2
docker push registry.cnshenzhen.aliyuncs.com/fengma/fengma_images:xd_rabbitmq-v1.0.2
4、拉取镜像(线上服务器器拉取镜像)
docker login --username=用户名 registry.cn-shenzhen.aliyuncs.com
docker pull registry.cnshenzhen.aliyuncs.com/fengma/fengma_images:xd_rabbitmq-v1.0.2
5、启动容器
docker run -d --name "fengma_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e