docker介绍
docker是一个开源的容器引擎,它有助于更快的交付应用。docker可将应用程序和基础设施层隔离,并且能将基础设施当做程序一样进行管理。使用docker可更快地打包,测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。docker技术推动了云计算的发展,阿里云,亚马逊云,腾讯云等都对docker提供了支持。
以前针对不同的操作系统,比如ubuntu、centos,安装同一软件的操作或者安装不同的软件,操作命令各不相同,docker便解决了这个问题。相当于在操作系统和软件之间,加了中间层,简化部署。不同的操作系统,不同的软件,基本的操作命令都是相同的。
docker安装
安装docker需要linux内核版本在3.0版本以上,可以通过uname -r命令查看linux内核版本
-
设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
安装docker(docker-ce代表社区版)
yum -y install docker-ce -
启动docer
service docker start -
验证
docker version
docker使用

docker架构图
docker有一个中央仓库(类似于maven的中央仓库),仓库地址为https://hub.docker.com
-
搜索镜像
#该命令会检索各字段中是否包含某字符(下面实例中会检索各字段是否包含java), #包括软件的name、description、stars(代表软件的流行程度)、 #official(代表是否为官方提供的docker镜像,一般会使用官方镜像)、 #automated、tags(版本号)等 docker search java -
下载镜像(冒号后面为版本号,不指定版本号也可下载,会下载最新版)
docker pull java:8 docker pull nginx:1.14可添加阿里云的镜像加速器,会加快镜像下载速度。在docker目录下(默认是/etc/docker)修改配置,修改完成后需要重启docker:
#编辑daemon.json文件,如果没有需要先新建 vim daemon.json #文件中输入国内镜像源 #最后一个地址为阿里云镜像源。需要登录阿里云容器服务控制台获 #取个人专属地址 {"registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://hub.rat.dev", "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.tbedu.top/", "https://s232dbmv.mirror.aliyuncs.com" ] } #重启docker systemctl daemon-reload systemctl restart docker -
列出本地镜像
docker images -
删除镜像
docker rmi java:8 -
新建并启动容器
#-d:后台运行 #-p:端口 #91:80 91:宿主机的端口号,80:映射的软件在容器中启动的端口 docker run -d -p 91:80 nginx:1.14 docker run -d -p 92:80 nginx -
列出容器
#查看当前处于运行中容器,会展示container id(容器ID)、image等字段 docker ps #查看所有容器,包括已经停止的 docker ps -a -
启动/停止容器
docker start/stop <容器id> -
查看容器信息
docker inspect <容器id> -
进入容器(退出容器用exit)
docker container exec -it <容器id> /bin/bash
更多docker操作命令详见官方文档:Reference | Docker Docs -
容器网络方式
1.Bridge模式(桥接模式):默认的网络模式。在这种模式下,docker会创建一个默认的虚拟网络,并为每个容器分配一个内部IP地址。
2.Host模式:将容器内的网络绑定到宿主机的网络上。
构建自己的docker镜像
- 用Dockerfile文件构建Nginx的Docker镜像
- Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节
#FROM指令用于指定基础镜像 FROM nginx #RUN指令用于构建镜像阶段执行命令(以下操作为替换nginx的欢迎页面内容) RUN echo '<h1>This is Zhuge Nginx!!!</h1>' > /usr/share/nginx/html/index.html - 在Dockerfile所在路径执行以下命令构建镜像
docker build -t nginx:zhuge . docker run -d -p 93:80 nginx:zhuge
构建微服务docker镜像
- 第一步:用Dockerfile文件构建Docker镜像
#基于哪个镜像 From java:8 #复制文件到容器(将Dockerfile所在目录的microservice-eureka-server.jar复制到根目录,并重命名为app.jar) ADD microservice-eureka-server.jar /app.jar #声明需要暴露的端口 EXPOSE 8761 #配置容器启动后执行的命令 ENTRYPOINT ["java","-jar","/app.jar"] - 第二步:用docker build命令构建镜像
docker build -t microservice-eureka-server:zhuge . - 第三步:启动镜像
docker run -p 8761:8761 microservice-eureka-server:zhuge - 第四步:访问微服务首页
http://Docker宿主机IP:8761/
Docker虚拟化原理

1768

被折叠的 条评论
为什么被折叠?



