Docker
学习途径
docker是一个开源的应用容器引擎,不是一个虚拟机,但是实现了虚拟机的资源隔离。
核心概念
镜像:创建虚拟机前需要下载一些系统预设环境软件(差不多就是镜像)
容器:类比一个正在运行中的一个虚拟机
Dockerfile:一个配置文件,用于描述指定一个镜像如何构建环境。
远程仓库:保存着很多公有的镜像(包括Ubuntu镜像、Nginx镜像、MySQL镜像、Tomcat镜像等)当然也可以将我们自己搭建的镜像通过push上传上去。
步骤
我们使用Play With Docker网站进行操作演示:
1】通过远程仓库下载镜像
docker pull nginx
docker pull node
2】查看我们本地有哪些镜像
docker images
3】运行镜像到容器
通过run指令,将镜像运行成一个正在运行的容器(虚拟机)
docker run -d -p 80:80 --name myNginx nginx
docker run -d -p 81:80 nginx
docker run node -v
4】查看正在运行的容器
docker ps
5】进入指定的容器进行操作
docker exec -it 84bf60fea375 bash
exit
6】进入到Nginx服务器的index.html目录
cd /usr/share/nginx/html/
ls
cat index.html
echo hello world > index.html
7】强制删除容器和镜像
需要先退出容器的交互命令终端,再docker ps查看
docker ps
docker rm -f 84bf60fea375
docker images
docker rmi nginx
8】将指定容器运行环境提交成一个镜像
也就是说可以使用commit命令将指定容器环境保存成一个本地镜像(预设),下次可以直接使用。
docker ps
docker commit 48b418179a8d custom_image
docker images
9】Dockerfile来构建镜像
vim index.html
vim Dockerfile
写Dockerfile文件:
- FROM指定docker构建的基础镜像,这里是基于nginx镜像构建
- ADD将当前目录下的所有文件拷贝到nginx的index.html目录下(当前端dist文件夹打包好之后,我们也就需要把dist文件夹下的内容拷贝到对应nginx目录下。这样用户才可以通过外部访问到nginx服务器上的前端项目)
FROM nginx
ADD ./ /usr/share/nginx/html
build命令构建镜像:
- dockerfile_image是构建的镜像的名字
- 后面需要加个
. 指定的是当前目录下的Dockerfile去构建
docker build -t dockerfile_image .
docker images
docker run -d -p 100:80 dockerfile_image
10】 将镜像保存为tar压缩文件
docker images
docker save nginx > nginx.tar
11】将tar压缩文件加载成镜像
ls
docker load < nginx.tar
docker images
|