Docker打包与测试

基本概念

镜像:镜像是一种文件存储形式(类似打包好的压缩包,放到其它设备,解压后的内容都不变)
容器:容器是由镜像实例化而成(类似对压缩包解压后的文件)
镜像与容器的关系

  • 镜像类似压缩包
  • 容器类似压缩包解压后的文件
    在这里插入图片描述

注意:

  1. 镜像one实例化的初始容器都是一样的;
  2. 每个容器互不干扰,无论是修改还是运行;
  3. 容器One里的内容可以修改,不影响镜像One;且可以通过commit生成新的镜像Two(镜像Two类似于 对镜像One解压后的文件进行修改后再压缩成的新压缩包)

1. 打包镜像

1.1 建立Dockerfile

教程:https://www.runoob.com/docker/docker-dockerfile.html

1.2 构建镜像

docker build -t 算法名称:版本号(例如:fastfcn:0.0.1) .
(注意:然后在当前路径的终端上输入)

docker build -t sentiment:0.0.1 .

2. 查看已有的镜像

打包好以后通过在终端输入:

docker images

就可以查看自己刚打包的镜像

3. 新建容器

参考链接:https://www.runoob.com/docker/docker-hello-world.html
通过如下命令启动镜像实例化容器: (进入容器的终端)
docker run -it 外面端口:里面端口(例如:8000:8080) 镜像名称:版本号(例如:sentiment:0.0.1) bash

docker run -it sentiment:0.0.1 /bin/bash
  • t: 在新容器内指定一个伪终端或终端。

  • i: 允许你对容器内的标准输入 (STDIN) 进行交互。

退出镜像的终端命令:

exit

查看正在运行的容器:

docker ps

查看所有的容器:

docker ps -a

4. 进出容器

启动容器,不进入容器:

docker run -it -d --name [container-name] -p 8088:80 [image-name]
# 这里是将容器内的80端口映射到宿主机的8088端口
 docker run -itd sentiment:0.0.1  /bin/bash
  • d :参数时,容器启动后会进入后台。

进入已启动的容器:

  • docker attach : 进入容器后,使用 exit退出,容器会停止
docker attach <容器 ID> 
  • docker exec : 进入容器后,使用 exit退出,容器不会停止(⭐)
docker exec -it <容器 ID>  /bin/bash

5. 导出和导入容器

5.1 导出容器

  • docker export
docker export <容器 ID>  > 导出的文件名.tar

5.2 导入容器

  • docker import
cat sentiment.tar | docker import - sentiment:0.0.2

或者:

docker import http://example.com/exampleimage.tgz example/imagerepo

6. 开启、停止、重启、删除容器

开启一个容器:

docker start <容器 ID>

停止一个容器:

docker stop <容器 ID>

重启一个容器:

docker restart <容器 ID>

删除一个容器:

docker rm -f  <容器 ID>

7. 修改容器、打包镜像与容器

修改镜像

docker commit 容器id 镜像名:版本号

打包镜像

docker save 镜像名:版本号 -o 镜像名_版本号.tar(例如:fastfcn_0_0_1.tar)

载入镜像


sudo docker load -i  镜像名_版本号.tar(例如:fastfcn_0_0_1.tar)

8.删除docker的镜像和容器

普通删除镜像

docker rmi <image id>

强制删除镜像

docker rmi -f <image id>

普通删除容器

docker rm <container id>

强制删除容器

docker rm -f <container id>

删除所有未运行的容器

docker rm $(docker ps -a -q) #正在运行的删除不了,所有未运行的都被删除了
或者
docker container prune #Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器

9. 容器文件与本地文件的传输

从容器到宿主机复制
docker cp 容器名: 容器路径 宿主机路径

 docker cp tomcat:/webapps/js/text.js /home/admin

从宿主机到容器复制:
docker cp 宿主路径中文件 容器名: 容器路径

 docker cp /home/admin/text.js tomcat:/webapps/js

参考

镜像和容器是什么
docker镜像与容器的关系
删除docker的容器和镜像
Docker删除容器命令

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值