1.从开发到上线, 存在多套环境配置, 如:本地集成环境,测试环境,UAT环境,FAT环境,生产环境等.
2.版本的升级导致服务不可用, 这里...程序员经常会说 在我的电脑上好好的啊,怎么在你那跑不起来了.
3.环境部署繁琐,每个服务都需要各种redis , MQ, Hadoop,elasticSearch中间件
*如果一个项目可以带上自身的环境打包**
**Docker给以上的问题,提出了解决方案**
1.java -> 打包 -> jar带上环境(镜像) -> Docker类似于一个应用商店 -> 相爱在发布需要的镜像 -> 开始运行
这里的镜像就类似,下载windows系统会自己带一些系统软件是一样的
2.Docker具备隔离性 , 避免了端口冲突 ,就类似于一个集装箱 ,相互之间隔离起来
3.一次编译到处运行,类似于java代码,应用及依赖的环境构建一次,可以到处运行
官网:Docker documentation | Docker documentation
仓库地址:Docker Hub
Docker能做什么容器化技术不是模拟一个完整的 *** 作系统,而是提取了核心的东西
Docker和虚拟机技术的不同
传统虚拟机:虚拟出一个硬件,运行一个完整的 *** 作系统,然后在这个系统上安装运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核,也没有硬件,所以很轻便
每个容器间是相互隔离的,容器内部有一个属于自己的文件系统,互不影响
镜像:就好比一个模板,可以通过这个模板创建容器服务,最终运行是在容器中运行
容器: Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建
仓库:就是存放镜像的地方,分为公有仓库和私有仓库。Docker Hub(默认国外)
安装DockerCentOS 7版本
查看环境: 系统内核是3.10以上的
[banklogop@SYSOPS00204162 ~]$ uname -r 3.10.0-693.el7.x86_64 [banklogop@SYSOPS00204162 ~]$
系统版本:
cat /etc/os-release
卸载旧版本:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
1.需要的安装包
yum install -y yum-utils
2.镜像
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
更新索引
yum makecache fast
3.相关
# docker-ce 社区版 ee 企业版 yum install docker-ce docker-ce-cli containerd.io
查看安装是否成功
docker version
启动docker
systemctl start docker
运行hello-world
docker run hello-world docker images # 查看镜像
卸载Docker
yum remove docker-ce docker-ce-cli containerd.io # 卸载依赖 rm -rf /var/lib/docker # 删除目录资源 rm -rf /var/lib/containerdDocker底层原理
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问,DockerServer接收到Docker-Client的指令,就会执行这个命令。
Docker的常用命令帮助命令
docker version #版本信息 docker info #系统信息,包括镜像和容器的数量 docker --help #帮助命令 docker 命令 --help
帮助文档地址:
https://docs.docker.com/engine/reference/commandline/apphttps://docs.docker.com/engine/reference/commandline/app
镜像命令
docker images #查看所有本地主机上的镜像 docker images --help #查看此命令可以加的参数 #例 -a #列出所有 -q #只显示镜像的id
docker search 搜索镜像
#可通过条件过滤 镜像STARS大于3000的 --filter=STARS=3000 docker search [OPTIONS] #例 docker search mysql
也可以通过docker的hub库查找
Docker Hub
docker pull 下载镜像
docker pull 镜像名 :tag #tag为版本号 docker pull mysql #例; 不写参数 默认下载最新版本 docker pull mysql:5.7
docker rmi 删除镜像
#例: docker images docker rmi -f e73346bd465 #rmi 镜像 -f全部删除 可以根据id或者名字删除,可以指定多个 docker rmi -f $(docker images -aq) #可以传参数,先查出所有,然后递归全部删除容器命令
有了镜像才可以创建容器,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image #参数说明 --name 容器名字 tomcat1 tomcat2 用来区分容器 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器端口 -p ip:主机端口:容器端口 -p 主机端口:容器端口 (常用) -p 容器端口 容器端口 -P 绑定指定端口 例: docker run -it centos /bin/bash #启动并进入容器 exit #从容器中退回主机,容器会停止运行 ctrl + P + Q #容器不停止
列出所有运行的容器
docker ps #列出当前正在运行的容器 -a #列出当前正在运行的容器 + 历史运行过的容器 -n=? #显示最近创建的容器 -q #只显示容器编号
删除容器
docker -rm 容器id #根据id删除 docker -rm -f $(docker ps -aq) #删除所有
启动/停止容器 *** 作
docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止容器 docker kill 容器id #强制停止当前容器常用其他命令
后台启动容器
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)