Docker介绍及使用

Docker介绍及使用,第1张

Docker介绍及使用 Docker为什么出现?

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(默认国外)

安装Docker

CentOS 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/containerd
Docker底层原理

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         #强制停止当前容器
常用其他命令

后台启动容器

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5573147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存