
如图所示:
DockerFile定义了镜像要安装的配置和环境
【通过build创建出想要的镜像】 docker build
例如:docker build -t xiao163/redis:latest .
xiao163:dockerhub的id
别忘了最后的点
把创建好的镜像分发给主机的docker虚拟机,
第一种是借助docker仓库来实现
通过push把本地的镜像上传到仓库,其他主机通过search到仓库里查找上传的镜像,通过pull把上传的镜像拉取到本地,别的主机就会拥有这镜像了
第二种分发镜像的方法,通过文件的方式
把镜像导出成压缩文件,别的主机将压缩文件导入成镜像
导出指令是save/export
导入指令load/import
删除镜像 rmi
查看镜像的详细信息 inspect
查看docker里面所有的镜像 images
从镜像创建出容器 run
创建完容器就直接运行了
暂停容器pause 恢复容器unpause
停止stop 运行start
查看容器的信息inspect
查看所有的容器 ps
删除容器的指令rm
【容器可以保存成镜像commit】
docker commit container名字 dockerhubId/image名字
【docker命令栗子】启动docker
1、【搜索java镜像】docker search java

2、【把镜像拉取到本地】docker pull docker.io/java

3、【查看docker安装的镜像】docker images

【如果你的镜像名字好长可以修改】
docker tag 原来的镜像名 新的镜像名字
【查看一下】docker images
【删除原来的镜像】docker rmi 原来镜像名

【查看一下】

导出成功
5、【删除镜像】docker rmi docker.io/java
【查看docker镜像】docker images
【导入】docker load < /home/java.tar.gz

导入成功
6、启动容器
【在宿主机上的docker目录下先创建一个project目录】

【启动镜像创建一个运行状态的容器】docker run -it -p 9000:8080 -p 9001:8085 -v /home/project:/soft --privileged --name myjava docker.io/java bash
注释:
1)-it:启动交互界面
2)-p映射端口 :宿主机的9000端口:容器端口8080,把容器的端口8080映射到主机端口9000
可以添加多个端口映射
3)【宿主机的文件或目录映射到容器里】
例如数据库存储的数据一定要保存到宿主机上的,不应该存储到容器里,备份恢复很方便
-v管理映射的 可以多个
冒号前面的地址是宿主机目录
冒号后面是容器的目录
4)读写权限:宿主机给容器的权限
--privileged :告诉docker在操作容器的时候是拥有最高权限的读写都可以的

【验证一下】java -version

7、容器里操作
进入/soft ,创建一个文件hello.txt,输入内容hello docker

【退出容器】exit
【查看宿主机】可以操作这个由容器创建的文件了

8、【重新启动容器 】docker start -i myjava

9、【暂停容器】docker pause myjava
【恢复运行】docker unpause myjava
10、删除容器之前要先停止容器,在容器外面也可以操作
【停止容器】docker stop myjava
【删除容器】docker rm myjava
【查看所有的容器包括停止的和正在运行的】
docker ps -a

待续噢~~~~
网友评论