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 文件
    
    services: # 一个文件可以管理多个服务/容器
    
    mysql: # 一个服务的名称
    
    restart: always # docker服务启动,容器自动启动
    
    image: daocloud.io/library/mysql:5.7.7 # 镜像名称
    
    container_name: mysql-compose-001 # 容器名称
    
    ports: # 端口号,一个容器可以暴露出多个端口号
    
    - 3306:3306
    
    environment:
    
    MYSQL_ROOT_PASSWORD: 123456 # 数据库root账号密码
    
    TZ: Asia/Shanghai # 数据库采用的时区
    
    volumes:
    
    - /opt/xs/volumes/mysql: /var/lib/mysql # 数据卷
     
    
    services:
    
    mysql:
    
    restart: always
    
    image: daocloud.io/library/mysql:5.7.7
    
    container_name: mysql-compose-001
    
    ports:
    
    - 3306:3306
    
    environment:
    
    MYSQL_ROOT_PASSWORD: 123456
    
    TZ: Asia/Shanghai
    
    volumes:
    
    - /opt/xs/volumes/mysql:/var/lib/mysql
    
    tomcat:
    
    restart: always
    
    image: daocloud.io/library/tomcat:8.0.45
    
    container_name: tomcat-compose-001
    
    ports:
    
    - 8080:8080
    
    environment:
    
    TZ: Asia/shanghai
    
    volumes:
    
    - /opt/xs/volumes/webapps:/usr/local/tomcat/webapps
    
    - /opt/xs/volumes/tomcat/logs:/usr/local/tomcat/logs
    查看已经启动的容器是否占用文件里的端口号
  2. 上传 yml 文件到 /opt/xs/ 目录下
  3. 执行compose命令:docker-compose up -d
场景2:用 docker-compose.yml 管理 Dockerfile 生成镜像并启动
  1. 准备一个 xxx.war 项目文件
  2. 在本地创建一个文件 Dockerfile
  3. 本地创建 docker-compose.yml 【定义了如何启动 Dockfile】


services:

xs:

restart: always

build:

context: ./

dockerfile: Dockerfile

image: xs:1.0

container_name: xs-tomcat

ports:

- 8081:8080

environment:

TZ: Asia/Shanghai

services:

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

restart: always

build: # 指定运行 dockerfile文件

context: ./ # 指定 dockfile 路径

dockerfile: Dockerfile # 指定 dockerfile 的名字

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

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

ports:

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

environment:

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


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

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 文件名称

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值