镜像导入导出的场景:
异地的开发写完代码,把自己的应用程序打包成镜像,发送给测试,测试运行镜像(前提是把镜像导入到docker),镜像运行成功后,等于环境部署成功,可以开始测试。
开发操作:
1、写代码
2、将写的代码打包成镜像
1)执行代码的依赖环境(比如写的代码需要在Linux上执行,哪么就需要Linux的环境)
2)执行代码本身的环境(比如Java的环境需要jdk)
3、把镜像导出
docker image save centos:7.8.2003(被导出的镜像) -o D:/temp.taz
4、发送给测试
测试操作:
1、接收开发发送的镜像
2、导入镜像到docker中,导出镜像成功后输出的信息:e07ee1baac5f: Loading layer 14.85kB/14.85kB Loaded image: hello-world:latest
3、运行镜像
4、开始测试
docker run 镜像名称
这个过程可以理解为:把镜像文件创建为docker容器的一部分,然后再进行启动。需要特别注意的是:容器内的进程必须是前台运行状态,否则容器直接退出。
还有一点需要特别注意:docker run 镜像名
如果镜像文件在本地不存在,就会在线去下载该镜像的资源信息,如:docker run -it --rm centos
docker的容器启动成功后,使用docker ps -a可以查看容器的ID记录信息
githup:公有云成都代码托管平台
dockerhup:公有云的docker镜像托管平台
容器命令
在运行镜像中,后面需要带一些指令的信息,这些指令的信息具体汇总如下:
-d:后台运行
-it:交互式命令
--rm:容器退出后自动被删除
--name:给容器起一个名字
-p:端口映射
容器信息的查看:
Linux:docker ps -a | grep 容器ID
windows:docker ps -a | findstr 容器ID
查看容器的详细的信息:docker container inspect 容器ID
查看容器的日志
1、运行镜像 docker run -it --rm centos
2、查看运行中的容器ID信息 docker ps -a
3、获取到容器的ID后,查看容器实时的日志信息 docker logs -f 容器ID
4、比如在Linux中安装vim的编辑器,安装的命令为:yum install -y vim,那么在容器的日志记录中也会实时的显示安装他的全部信息
docker logs -f 容器ID:查看实时的日志文件内容,如果想退出,就需要按ctrl+c
docker logs 容器ID:一次性查看所有的日志文件内容
docker logs 容器ID | tail -3:查看最新的3行日志文件(日志最新的内容) 仅仅适用于Linux的系统
docker logs 容器ID | head 3:查看日志文件最前面的3行
容器的提交解决了什么?
解决了容器中安装的环境,但是必须在容器推出前要进行提交,如果没有提交,那么推出后,安装的环境等于再次安装
退出vim的步骤:
按下esc键,同时按下shift :,之后输入q!,按下回车键就会退出
容器提交的步骤:
1、运行镜像到容器后
2、在容器里面进行具体的操作(比如安装软件、搭建环境等),但是容器不能退出
3、打开一个新的控制台,查看到容器的ID docker ps -a
4、对容器进行提交 docker commit 容器ID
镜像新的名称,如:docker commit 容器ID centos_vim_mysql
5、待容器提交成功后,之前的容器进行退出
6、查看所有的镜像,就会发现存在centos_vim_mysql的镜像
7、运行新的镜像文件,如docker run -it --rm centos_vim_mysql
docker image tag 镜像ID centos_vim(镜像的名称) 指定镜像的名称
1、如果镜像名称是none就不会复制,直接把none的镜像名称修改为新的镜像名称
2、如果镜像名称不是none,那么在此修改等价于复制
1、获取nginx的镜像:docker pull nginx
2、端口映射:-p 80(宿主机的端口):(容器里面的端口)
3、后台方式运行容器: docker run -d -p 80:80 nginx
4、查询容器的端口: docker port 容器ID
演示:容器的停止和启动
docker port ID、docker stop ID、docker port ID、dockerstart ID、docker port ID