Docker介绍
Docker 是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
.
.
核心概念
-
Docker Daemon
运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互。 -
Docker Client
Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者RESTful api访问远程的Docker daemon。 -
Docker Image
镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。
-
Docker Container
容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。 -
Docker Registry
仓库:共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址,也可以搭建自己私有的Docker registry。镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。 -
如下图所示
使用步骤
-
Linux下安装docker
1 查看centos版本
docker要求centos内核版本高于3.10
uname -r
-
安装docker
yum install docker
-
启动docker
systemctl start docker
-
将docker服务设为开机启动
systemctl enable docker
-
查看docker的版本号
docker -v
-
去docker仓库找到这个软件对应的镜像并操作
操作 | 命令 | 说明 |
---|---|---|
检索 | docker search 关键字(redis) |
在仓库上检索镜像的详细信息 |
拉取 | docker pull 镜像名:tag |
:tag是可选项,tag表示标签,多为软件的版本,默认是最新的latest |
列表 | dockers images |
查看本地的所有镜像 |
删除 | docker rmi image-id |
删除指定的本地镜像 |
- 运行镜像,生成一个docker容器(container正在运行的软件)并操作
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run --name container-name -d image-name |
–name:自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps (查看运行中的容器) |
加上-a可以查看所有容器 |
停止 | docker stop container-name\container-id |
停止当前你运行的容器 |
启动 | docker start container-name\container-id |
运行容器 |
删除 | docker rm container-id |
删除指定的容器 |
端口映射 | -p 6379:6379 eg:docker run -d -p 6379:6379 --name myredis docker.io/redis |
容器之间是互相隔离的,容器和宿主服务器也是互相隔离的。因此我们在docker中运行了一个Tomcat的服务器,虽然端口是8080,但是那是容器中的8080端口,因此我们通过ip:8080访问到的其实只是宿主机上的8080端口,并不是容器中的端口。此时我们只需要把容器中的端口映射到宿主机上相应的端口即可。端口映射只需要在运行时加入指令 -p 映射的宿主机端口 |
容器日志 | docker logs container-name\container-id |
- 对容器的启动停止就是对软件的启动停止
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run --name container-name -d image-name |
–name:自定义容器名 -d:后台运行 image-name:指定镜像模板 |
列表 | docker ps (查看运行中的容器) |
加上-a可以查看所有容器 |
停止 | docker stop container-name\container-id |
停止当前你运行的容器 |
启动 | docker start container-name\container-id |
运行容器 |
删除 | docker rm container-id |
删除指定的容器 |
端口映射 | -p 6379:6379 eg:docker run -d -p 6379:6379 --name myredis docker.io/redis |
-p:主机端口(映射到)容器内部的端口这样主机才能访问到docker中的容器 |
容器日志 | docker logs container-name\container-id |
项目部署以及镜像的使用
-
docker部署项目
tomcat部署web项目 -
docker创建镜像
docker创建spring boot镜像