为什么要用Docker
在了解为什么要用docker前,先看看如果不用docker的情况下会出现什么情况。
没用docker之前开发人员开发完一个应用,会在自己本地运行一下发现可以运行,之后会和运维沟通各种安装的环境和版本,方便运维去配置基础环境,而有时因为基础的版本号不一致,导致应用运行不了,而在开发人员本地却可运行,而后就会出现各种扯皮和检查配置和版本号重新安装。
在使用docker后,开发人员只要将开发完成的应用打成一个docker镜像,,运维只要运行该镜像就会不存在环境不一致依赖不一致版本配置不一致等问题,保证了环境迁移的一致,该镜像相当于复制了开发本地环境及版本及依赖,就算要在多台机器上运行,只要运行该镜像就行。
Docker是什么?
基本组成
镜像(image):镜像文件生成容器实例,本身也是一个文件,称为镜像文件;其实image文件可以看作是容器的模版,Docker根据文件生成容器实例,同一个image文件,可以生成多个同时运行的文件实例。
容器(cantainer):一个容器运行一种服务,当需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是容器;其实类似于通过镜像new出来的实例对象。
仓库(repository):存放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库总拉取就行。
三者的关系就是说镜像文件可以生成容器实例,而镜像又存放在仓库中
基础命令
命令 | 说明 |
---|---|
docker pull | 拉取镜像 |
docker push | 推送镜像到DockerRegistry |
docker images | 查看本地镜像 |
docker rmi | 删除本地镜像 |
docker run | 创建并运行容器(不能重复创建) |
docker stop | 停止指定容器 |
docker start | 启动指定容器 |
docker restart | 重新启动容器 |
docker rm | 删除指定容器 |
docker ps | 查看容器 |
docker logs | 查看容器运行日志 |
docker exec | 进入容器 |
docker save | 保存镜像到本地压缩文件 |
docker load | 加载本地压缩文件到镜像 |
docker inspect | 查看容器详细信息 |
命令之间的关系
如何使用Docker安装镜像
以Docker 安装 Nginx为例
1查看可用的 Nginx 版本
可以先访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags。找到可以用的Nginx版本
2、取最新版的 Nginx 镜像
进入镜像仓库之后,就可以复制官网给我们的命令拉取官最新版本的镜像:
docker pull nginx
3、查看本地镜像
镜像拉取之后如何确定是否拉取成功呢?
我们可以通过docker images命令来查询
4、运行容器
安装完成后,我们可以使用以下命令来运行 nginx 容器:
$ docker run --name nginx-test -p 8080:80 -d nginx
参数说明:
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
5、安装成功
最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务: