Docker2️⃣镜像 & 容器

1、镜像

1.1、命名规范

镜像名称[repository]:[tag]

  • repository:镜像仓库

  • tag:版本 【若不指定 tag,则表示最新版(latest)】

    image-20220531110529977

1.2、命令(❗)

命令帮助文档docker xxx - help

image-20220531111005167

  • 远程

    • push:推送镜像

    • pull:拉取镜像

      docker pull 镜像名称[:版本号]
      
  • 本地

    • images:查看本地镜像
    • rmi:删除
  • 导出

    • save:导出压缩包(.tar

      docker save -o [目标文件名称] [镜像名称]
      
    • load:加载镜像

      docker load -i [源文件]
      
  • 构建:build

1.3、case

1.3.1、搜索镜像

示例:DockerHub 最新版 Redis 镜像。

  1. 搜索镜像

    image-20220531111430559

  2. 查看镜像信息

    image-20220531111710106

1.3.2、操作镜像

命令帮助文档docker xxx - help

  1. 拉取镜像:若不指定 tag,则表示最新版(latest)

    docker pull docker
    
  2. 查看本地镜像:镜像仓库,版本,镜像 ID,创建时间,大小

    • docker images
      
    • image-20220531111951429

  3. 导出:如生成到 /tmp 下

    docker save -o /tmp/redis.tar redis:latest
    
  4. 删除本地镜像

    docker rmi redis::latest
    
  5. 导入

    docker load -i /tmp/redis.tar
    

2、容器

2.1、状态

容器的 3 个状态

  • 运行:进程正常运行。

  • 暂停:进程挂起。不再分配 CPU 时间片,但不释放内存。

  • 停止:进程终止。不再分配 CPU 时间片,释放内存。(仅保留磁盘文件)

    image-20220531144436423

2.2、状态命令(❗)

命令帮助文档docker xxx - help

  • 创建/删除
    • run:通过镜像创建一个容器并运行。
    • rm:删除容器(包括磁盘文件)。
  • 停止/启动
    • stop:停止运行(exit)。
    • start:使停止容器再次运行(相比 run,容器已创建)。
  • 暂停
    • pause:暂停运行。
    • unpause:恢复运行。

2.2.1、run

创建并运行容器

docker run [OPTIONS] 镜像名 [指令] [参数...]

常用选项

  • --name:容器名
  • -p:建立宿主机和容器端口映射关系。
    • 容器是一个隔离环境,因此需要配置端口号映射。
    • 左侧是宿主机端口(自定义),右侧是容器端口(通常是应用的默认端口,如 MySQL-3306,Nginx-80)
  • -d:后台运行
  • -v:挂载数据卷(本文 3.3)

Hint:报错 IPv4 forwarding is disabled. Networking will not work

  • 原因:未启用 IPv4 转发功能。

  • 解决

    # 添加配置
    echo "net.ipv4.ip_forward=1" >> /usr/lib/sysctl.d/00-system.conf
    # 重启网络
    systemctl restart network
    # 重启Docker
    systemctl restart docker
    

2.2.2、rm

删除容器(包括磁盘文件)

docker rm [OPTIONS] 容器名
  • 不带选项时,只能删除非运行状态的容器。
  • -f:强制删除容器,无论是否处于运行状态。

2.3、操作命令(❗)

命令帮助文档docker xxx - help

2.3.1、ps

查看容器

docker ps [OPTIONS]
  • 不带选项时,仅列出运行中的容器。
  • -a:列出所有容器。

2.3.2、logs

查看容器运行日志

docker logs [OPTIONS] 容器名
  • 不带选项时,仅查看当前形成的日志。
  • -f:持续输出日志(Ctrl Z 退出)

2.3.3、exec

进入容器,执行命令

docker exec [OPTIONS] 容器名 命令
  • -it:开启标准输入终端。
  • 命令:进入容器后执行的命令,如 bash 表示进入 Linux CLI。

2.4、case

示例:创建并运行一个 Redis 容器,使用 Redis。

  1. 拉取镜像

    docker pull redis
    
  2. 创建并运行容器,开启 AOF 持久化策略。

    docker run --name myRedis -p 6379:6379 -d redis redis-server --appendonly yes
    
  3. 进入容器,执行 redis-cli 命令连接到 Redis 服务器。

    docker exec -it myRedis redis-cli
    
  4. 成功连接到 Redis 服务器后,即可正常使用 Redis。

    image-20220531152415984

posted @ 2022-05-31 10:50  Jaywee  阅读(54)  评论(0编辑  收藏  举报

👇