当前位置:   article > 正文

Docker【docker使用】

Docker【docker使用】


前言

上一篇文章讲了docker的安装,本片文章我们来聊聊docker的一些常用操作。以及镜像、容器之间的关系
如果你想更加系统的学习docker,请看【docker入门与实战】

一、概念

docker三大核心概念:镜像 Image、容器 Container、仓库 Repository

  • 镜像:
    • Docker 镜像,就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器:
    • 镜像容器,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器镜像运行时的实体。
    • 容器可以被创建、启动、停止、删除、暂停等。
    • 基于镜像可以创建容器,同一个镜像可以创建多个容器
    • 基于容器也可以创建镜像
  • 仓库:
    • 用来保存镜像镜像存放在仓库中,可以从仓库中拉取或者推送镜像仓库

二、常用方法

1.镜像

配置好仓库后可以在docker阿里云镜像仓库下载需要的镜像,像mysql nginx
例如:mysql

docker pull mysql;
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql; #初次启动要设置mysql初始密码 -d表示后台运行,否则你的终端就无法继续操作了
  • 1
  • 2
命令描述案例
pull拉取镜像docker pull mysql #默认拉取最新镜像
docker pull mysql:8.0.28 # 拉取指定版本镜像
search搜索镜像docker search mysql
tagcopy镜像并重命名,源镜像仍然存在
如果镜像没有镜像名,也可以通过镜像id进行更改名称
docker tag mysql mysql2
images查看本地已存在的镜像信息docker images mysql # 指定镜像
docker images #所有镜像
docker images | grep mysql # 配合管道符使用
rmi删除镜像|镜像idrmi mysql
build基于dockerfile构建镜像 docker build -t 镜像名:tag url
url:指定Docker构建上下文的路径,它决定dockerfile中COPY、ADD执行的相对路径,一般都是进入dockerfile文件的同级目录后,然后设置为.
docker build -t image1:1.0.0 .

docker不能直接查看远程仓库中某个镜像的所有可用版本。但是有两个操作可以实现它

  • 1直接进入镜像仓库管理界面,这里只列举两个

    • 官方:https://hub-stage.docker.com/_/nginx/tags
    • 阿里:https://cr.console.aliyun.com/cn-hangzhou/instances/artifact。阿里的容器镜像服务是每个人都不同的,你需要登录进入
      在这里插入图片描述

  • 2 拉取镜像的所有可用版本。虽然这个命令会直接下载所有可用版本,比较耗费资源,时间也比较长。

    docker pull --all-tags [IMAGE_NAME]
    
    • 1

  • 3 使用manifest inspect命令,他会打印出镜像在仓库中的清单

    docker manifest inspect library/nginx
    
    • 1

    它是一个试验性的命令,如果你无法使用,则需要配置开启manifest

    vi ~/.docker/config.json
    # 添加以下内容
    {
      "experimental": "enabled"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

2.容器

容器是通过依据image创建的运行实例,把image看成class,容器就相当于class new的实例对象。一个镜像可以create出多个容器。
通过exec命令进入容器后可以通过两种方式退出容器

  • 1.exit:退出容器,并保持容器运行
  • 2 ctrl + P Q:退出容器,返回到主机命令窗口
命令描述案例
createdocker create (–name=容器名) 镜像名docker create --name=mybusybox busybox
run运行容器,run = pull + create + start 相当于运行三个命令docker run -d mybusybox # -d:后台运行
exec…-it…sh | /bin/bash进入容器内部 -t:表示打开一个伪终端;-i :即使没有附加也保持STDIN 打开
在命令的最后加一个sh/bin/bash来启动一个交互式shell
/bin/bash:功能更强 sh:兼容性更好
docker exec -it mybusybox sh
start启动容器docker start mybusybox
restart重启容器docker restart mybusybox
stop停止容器docker stop mybusybox
rm删除容器docker rm mybusybox
commit基于已有容器构建镜像
ps查看容器状态:docker ps -a:查看所有容器docker ps -l:查看最近操作的容器docker pa -a
logs查看容器日志:docker logs 容器名:查看指定容器的运行日志docker logs -f 容器名:实时查看指定容器的运行日志docker logs -f mysql

容器在操作容器时,一些比较有用的参数

命令说明
--name指定容器名称:–name=容器名–name 容器名
-d后台运行
-p映射端口,宿主机端口:容器端口,例如:-p 3307:3306
-v挂载目录到本地,宿主机目录:容器目录,例如:-v /usr/local/nginx:/usr/local/nginx
--restart自动重启,例如:–restart=always,跟随docker服务的重启而重启

三、镜像与镜像的关系,以及镜像构建和管理

镜像构建以及管理的内容比较多,本文的目的是记录镜像和容器的各种操作,所以单独把这一块放到这一篇文章

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/284183
推荐阅读
相关标签
  

闽ICP备14008679号