Docker简单学习
这里没叙述安装啥的过程,Linux里面安装很简单的。而且Docker官方文档写的挺明白的。
这个主要看的B站视频:https://www.bilibili.com/video/BV1R4411F7t9
Docker概念图
网站
体验学习Docker的一个网站:https://labs.play-with-docker.com/,提供一个在线环境直接使用。
默认给4小时的学习时间,200是指已经运行的镜像映射的服务器端口。
基本命令
镜像操作
pull nginx 镜像:
docker pull nginx
(等效于nginx:latest)
从远程仓库下载已经有了的镜像查看镜像列表:
docker images
(本机已有的镜像)或者docker image ls
删除镜像:docker rmi【 name】
容器操作
- 运行:
docker run 【-d】(后台运行不阻塞shell) 【-p 81:80】(指定容器端口映射,内部:外部) nginx(镜像名)
端口映射是说Docker虚拟机内的端口81,映射到现在服务器的端口80。外部访问服务器端口80,然后服务器再去访问Docker虚拟机的端口81。
- 查看正在运行的镜像(容器):
docker ps
进入Docker虚拟机的镜像(容器)中的bash:docker exec -it container id(不用打全,前缀区分) bash
删除容器(停止运行):docker rm -f 【container id】(不用打全,前缀区分)
commit镜像:docker commit 【id】(不用打全,前缀区分) name
镜像修改过之后可以用这个搞一个copy的
DockerFile构建新镜像
编写DockerFile,然后从DockerFile来从已有镜像构建新镜像
比如我们这里在当前目录./
下新建了一个index.html
,然后复制到虚拟机中的nginx/html
下,替换掉默认的首页。
1 | # 从nginx镜像来构建 |
使用Dockerfile构建镜像:docker build -t [NewImageName] [存放Dockerfile的文件夹]
如下,注意最后有个点 .
指的是当前目录
最后通过m2的100端口运行一下可以看到新镜像的效果。
tar文件
保存为tar:docker save name tar name
从tar加载:docker load < [文件名]
扩展命令:docker run -d -p 200:80 -v $(pwd):/use/share/nginx/html/ –name test nginx:1.13
使用200映射内部80端口,使用当前路径$(pwd)映射到内部html文件夹下,运行时名称显示test,nginx镜像版本使用1.13
- Powershell下使用:${pwd}
- Linux下使用:$(pwd)