docker - 镜像、容器、网络、数据卷、compose、自制镜像

1、docker - 镜像命令
1.1 拉取镜像到本地(下载安装包)

docker pull 镜像名字
docker pull tomcat

1.2 删除镜像

docker rmi 镜像标识的前n位
如果该镜像启动过容器,不能直接删除 docker rmi 9

1.3 镜像的导入导出

导出:

docker save -o 绝对路径到文件名 镜像ID
docker save -o /opt/tomcat.image 904a98253fbf

导入:

docker load -i 要导入的镜像文件名
docker load -i tomcat.image

1.4 修改镜像名称

docker tag 镜像的标识 新名字:新版本号
docker tag 904 tomcat:9.0

2、docker - 容器命令
2.1 启动镜像,生成容器

docker run -d -p 8011:8080 --name first_tomcat tomcat:9.0

  • tomcat:9.0 要运行的镜像名字,一般写的是镜像id
  • -d daemon 的首字母,让进行后台运行,非交互式无界面的
  • -p 8011:8080 外网访问tomcat的本来是8080端口,我们将容器里的端口映射到了linux的8011端口,意思就是外网ip+8011就可以访问tomcat了,如果我们不做映射会怎么样,8080能访问到tomcat吗?
  • --name first_tomcat 给容器起了名字叫first_tomcat
  • -i input首字母,保持容器的标准输入
  • -t ternal 保持在终端输入,在前台运行的那种

2.2 查看容器
  • docker ps 查看运行的容器
  • docker ps -q 查看运行的容器标识
  • docker ps -a 查看所有容器
  • docker ps -aq 查看所有容器标识
2.3 查看容器日志
  • docker logs -f 容器标识
2.4 进入容器、退出
  • docker exec -it 容器标识 bash
  • exit

 exec 执行的意思
-it 交互式运行
bash linux操作系统的默认界面shell

2.5 停止容器
  • docker stop 容器标识
2.6 启动容器
  • docker start 容器标识
2.7 重动容器
  • docker restart 容器标识
2.8 删除容器
  • docker rm 容器标识

运行状态的容器无法被删除,删除之前先停止容器

  • docker stop $(docker ps -qa)
  • docker rm $(docker ps -qa)

删除所有容器的id

2.9 复制文件
  • docker cp 文件路径及文件名 容器id:容器内部路径
  • docker cp XGYSytest12.war 70:/user/local/tomcat/webapps
3、docker - 网络命令
  • 查询所有网络:docker network ls
  • 删除网络:docker network rm 网络名grid
4、docker - 数据卷/数据映射

类似于共享文件夹,将宿主机的目录作为一个数据卷,映射到容器内部,可供容器使用。

  • 创建数据卷:docker volume create v-tomcat
  • 查看数据卷(v-tomcat)信息:docker volume inspect v-tomcat
  • 查看全部数据卷:docker volume ls
  • 删除数据卷:docker volume rm 数据卷名
  • 数据卷的使用:

1、首先创建一个数据卷,然后用数据卷的名称映射到容器内部的路径,当你的数据卷不存在时,docker会自动创建

docker volume create 数据卷
docker run -d -p 80:8080 --name mytomcat -v v-tomcat:/user/local/tomcat/webapps 镜像id

只需要把项目包war放到这个目录v-tomcat的_data目录就可以了,容器就会自动获取

2、docker run -d -p 81:8080 --name tomcat001 -v /opt/volumes/v-tomcat03:/user/local/tomcat/webapps 镜像id

直接指定路径也会自动创建数据卷,最后面的路径不要加/

5、docker-compose 常用命令
5.1 常用命令

官方的开源项目,主要docker容器集群的快速编排,主要是用来批量执行docker run命令

docker-compose up -d 【执行yml文件,创建并启动容器】
docker-compose down 【关闭并删除容器】
docker-compose stop 【关闭】
docker-compose start 【启动】
docker-compose restart 【重新启动】
docker-compose logs -f 【查看日志】

5.2 常用场景
场景1:用docker-compose 管理 mysql 和 tomcat 容器
  1. 编写 docker-compose.yml 文件
     
      
    1. services: # 一个文件可以管理多个服务/容器

    2. mysql: # 一个服务的名称

    3. restart: always # docker服务启动,容器自动启动

    4. image: daocloud.io/library/mysql:5.7.7 # 镜像名称

    5. container_name: mysql-compose-001 # 容器名称

    6. ports: # 端口号,一个容器可以暴露出多个端口号

    7. - 3306:3306

    8. environment:

    9. MYSQL_ROOT_PASSWORD: 123456 # 数据库root账号密码

    10. TZ: Asia/Shanghai # 数据库采用的时区

    11. volumes:

    12. - /opt/xs/volumes/mysql: /var/lib/mysql # 数据卷

     
      
    1. services:

    2. mysql:

    3. restart: always

    4. image: daocloud.io/library/mysql:5.7.7

    5. container_name: mysql-compose-001

    6. ports:

    7. - 3306:3306

    8. environment:

    9. MYSQL_ROOT_PASSWORD: 123456

    10. TZ: Asia/Shanghai

    11. volumes:

    12. - /opt/xs/volumes/mysql:/var/lib/mysql

    13. tomcat:

    14. restart: always

    15. image: daocloud.io/library/tomcat:8.0.45

    16. container_name: tomcat-compose-001

    17. ports:

    18. - 8080:8080

    19. environment:

    20. TZ: Asia/shanghai

    21. volumes:

    22. - /opt/xs/volumes/webapps:/usr/local/tomcat/webapps

    23. - /opt/xs/volumes/tomcat/logs:/usr/local/tomcat/logs

  2. 查看已经启动的容器是否占用文件里的端口号
  3. 上传 yml 文件到 /opt/xs/ 目录下
  4. 执行compose命令:docker-compose up -d
场景2:用 docker-compose.yml 管理 Dockerfile 生成镜像并启动
  1. 准备一个 xxx.war 项目文件
  2. 在本地创建一个文件 Dockerfile
  3. 本地创建 docker-compose.yml 【定义了如何启动 Dockfile】

  1. services:

  2. xs:

  3. restart: always

  4. build:

  5. context: ./

  6. dockerfile: Dockerfile

  7. image: xs:1.0

  8. container_name: xs-tomcat

  9. ports:

  10. - 8081:8080

  11. environment:

  12. TZ: Asia/Shanghai

 
  1. services:

  2. xs: # 起个名,这个自定义,只要把war文件、Dockerfile、docker-compose.yml 放到一个目录下就行

  3. restart: always

  4. build: # 指定运行 dockerfile文件

  5. context: ./ # 指定 dockfile 路径

  6. dockerfile: Dockerfile # 指定 dockerfile 的名字

  7. image: xs:1.0 # dockfile 是用来自制镜像的,所以必须指定镜像名字

  8. container_name: xs-tomcat # 会启动一个容器,容器名字是 xs-tomcat

  9. ports:

  10. - 8081:8080 # 容器的端口映射到linux的8081

  11. environment:

  12. TZ: Asia/Shanghai # 环境配置是伤害时间

  1. 将以上3个文件放到 /opt/xs2目录下,执行 docker-compose up -d
  2. 注意:

不想重新创建镜像,执行:docker-compose up -d
想重新创建新镜像,执行:docker-compose up -d --build

6、docker - 自制镜像
6.1 制作这个镜像:在原有的tomcat镜像下增加一个war包
  1. 在本地创建一个文件 Dockerfile

  1. from daocloud.io/library/tomcat:8.5.16-jre8-alpine

  2. copy xxx.war /user/local/tomcat/webapps

from 后面是从网站上找的环境, copy 后面是开发给的包

  • 根目录下创建了docker_demo文件夹,并将xxx.war、Dockerfile上传到目录下
  • docker_demo目录下执行 Dockerfile 文件:docker build -t tomcat_001:1.0 .

当前目录下,注意命令最后的点,当前目录下制作了镜像tomcat_001,并且是1.0的版本

6.2 镜像在工作中的使用场景一
  1. 开发创建 Dockerfile ,并且自定义镜像信息

from 指定当前自定义镜像依赖的环境
copy 把一些文件复制到镜像中
workdir 镜像工作目录
cmd 在workdir下要执行的命令 

  1. 查看镜像是否创建成功:docker images
  2. 开发把镜像导出给测试、运维:docker save -o 导出的路径和命名 镜像id
  3. 测试把开发给的镜像导入测试服务器中:docker load -i 文件名称

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值