本博客来源于bilibili学习笔记
https://www.bilibili.com/video/BV1R4411F7t9?from=search&seid=336413977865933084
1 Docker的本质
首先它是一个虚拟机,它主要的功能如下
镜像可以理解成像操作系统镜像文件的ios文件等
容器可以理解成正在运行的一个虚拟机
tar文件 可以将一个镜像直接保存成一个tar文件,别人通过load指令,重新能加载这个镜像,然后通过run指令就可以运行这个容器了
Dockerfile是一个配置文件,通过写如何去构建的步骤来指定一个镜像是如何构建的,然后通过docker build指令将一个dockerfile构建成一个镜像
仓库,也就是远程仓库,他保存了很多镜像,包括共有的第三方已经做好的镜像,例如ubanto、ngix、mysql、tomcat镜像等,也可以将自己的镜像通过push上传上去
2.学习Docker的好用的网站
https://labs.play-with-docker.com/
pull
例如 docker pull mysql 其实是 docker pull mysql:latest
然后 执行 docker images 如下图已经有了一个镜像了
docker run -d -p 80:80 mysql
//-d 表示运行时候不要阻塞shell窗口 -p表示 内外端口的一个映射 mysql是我们执行的镜像
docker ps //显示运行的容器 这时候 我们发现没有容器运行 这个以后再说 换个例子 用 nginx
docker pull nginx
docker images
docker run -d -p 80:80 nginx 然后就可以看到这个容器运行起来了
docker run -d -p 81:80 nginx 内部81端口映射到外部 相当于又启动了一个容器
docker rm -f 74//s删除81端口
commit
指定镜像名字 把我们上面 ID是a28e6e5b的容器 提交成一个镜像
docker commit a28e6e m1
docker run -d -p 90:80 m1 运行m1镜像
我们上面的操作就是 m1是nginx的一个镜像 如果我们对nginx做了修改 再保存的话 m1就相当于一个备份 备份了nginx的修改
运行m1就是运行nginx修改后的样子
Dockerfile
新建一个Dockerfile 文件
vi Dockerfile 然后对文件的编辑如下
FROM nginx 表明我们是基于nginx这个镜像构建的基镜像
ADD ./ /usr/share/nginx/html/ 将当前目录下的所有文件拷贝到 user.share.nginx.html/这个文件夹下
退出保存 esc :wq
vi index.html 输入 wai bu de wen jian
docker build -t m2 . 构建的m2镜像 基于当前文件构建的 .代表的就是档期那文件
docker run -d -p 100:80 m2
然后点击100端口就可以看见 我们的html wai bu de wen jian 了
save load
查看我们目前运行的镜像
docker ps
docker save m2 >1.tar 保存m2容器到1.tar文件
docker rm -f 13bc 删除m2r容器
docker rmi m2 删除m2镜像
docker load < 1.tar 从1.tar中保存的m2镜像 加载过来
docker run -d -p 100:80 m2 运行m2镜像 点开100端口 可见 内容还是 wai bu de wen jian