docker基础:镜像,容器命令(三)

一、镜像命令
在docker基础:命令详解(二)中已经介绍了如何登录dockerhub及私服,下面进行镜像的命令的学习。
1、镜像
先说一下镜像和容器的关系,镜像类似于一个母板,在公网中进行拉取创建。容器相当于母板复制出来的产品,每个产品有不同的编号,端口号等。也就是说现有镜像,再有容器。有人会问了,没有镜像,容器就不能运行吗?不是的。当创建一个容器时,如果没有镜像,那么就会根据你给的路径自动去下载镜像,然后生成容器,默认是从共网上下载。

2、拉取镜像:docker pull 镜像名
      拉取镜像之前,先要明确自己需要什么镜像,知道镜像有哪些版本,我需要两个镜像,tomcat和mysql。
      可以看到有很多镜像,我在这里只是用官网镜像
Paste_Image.png
Paste_Image.png
 拉取tomcat镜像:docker pull tomcat
Paste_Image.png
  拉取mysql镜像:docker pull mysql
Paste_Image.png
3、查看镜像:docker images 
          能看到我已经下载了两个镜像。
Paste_Image.png
4、修改镜像tag:docker tag 镜像名/镜像ID  自定义镜像名:自定义tag名
      docker tag tomcat tomcat-test:tomcat7  创建出一个新的tomcat镜像  tag是自定义的
Paste_Image.png
       上面的图片中,大家可能注意到了,有两个id相同的镜像,这样就有问题了,删除的时候怎么处理?
5、删除镜像:docker rmi 镜像ID/镜像名:tag名
              -f 强制删除,即使镜像被占用。
              删除多个镜像:docker rmi A B C
Paste_Image.png
6、构建镜像:暂时不做。

7、构建镜像方式2:dockerfile文件构建。
      
8、查看指定镜像的历史信息:docker history 镜像id
9、将镜像推送到远程仓库,默认是dockerhub:docker push 镜像id
10、docker image 的命令:
        build Build an image from a Dockerfile
        构建    构建一个镜像从一个dockerfile
         history Show the history of an image
        历史    显示镜像的历史。
        import Import the contents from a tarball to create a filesystem image
        导入   过压缩包制作镜像
        inspect Display detailed information on one or more images
        检查   显示一个或多个镜像的详细信息。
        load Load an image from a tar archive or STDIN
        加载   将一个镜像save成压缩包后,在用load命令加载成一个镜像
        例如:docker load -i/<  /存放镜像的路径/镜像.tar
        ls List images
        ls    列出镜像
        prune Remove unused images
        删除   删除未使用的镜像
        pull Pull an image or a repository from a registry
        从注册表中拉出镜像或存储库。
        push Push an image or a repository to a registry
        将镜像或存储库推入注册表
        rm Remove one or more images
        删除 一个或多个图像
        save Save one or more images to a tar archive (streamed to STDOUT by default)
        保存一个或多个图像到一个tar归档文件(流到stdout默认),可以指定到某个文件下
        例如:docker save 镜像名:tag -o /需要存放镜像的路径/定义一个名字.tar  
        tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
        标签创建一个标签target_image指source_image

二、容器命令
1、查看容器的命令: docker ps -a
-a, --all Show all containers (default shows just running)
- -所有显示所有容器(默认显示刚刚运行)
-f, --filter filter Filter output based on conditions provided
基于滤波器提供的滤波器滤波器输出条件
--format string Pretty-print containers using a Go template
使用滚动模板格式化字符串漂亮的打印容器
--help Print usage
——帮助打印使用
-n, --last int Show n last created containers (includes all states) (default -1)
-最后一个int显示上次创建的容器(包括所有状态)(默认值1)
-l, --latest Show the latest created container (includes all states)
最新显示的最新创建的容器(包括所有国家)
--no-trunc Don't truncate output
——NO TRUNC不截断输出
-q, --quiet Only display numeric IDs
只显示容器ID
-s, --size Display total file sizes
大小 显示总文件大小
2、最新创建的容器(最后启动的):-l
只查看容器的id:-q
显示容器的大小:-s
3、删除容器:docker rm 容器id/容器名
批量删除:docker rm 容器id/容器名 容器id/容器名 容器id/容器名
4、启动已经创建的容器:docker start 容器id/容器名
5、重新启动容器:docker restart 容器id/容器名
6、停止容器:docker stop 容器id/容器名
7、后台创建容器: docker run --name (自定义容器名) -d -p (访问端口:映射端口) 镜像id
例:创建一个mysql的容器,用户名root,密码是root
docker run --name mysql -d -p 53306:3306 -e MYSQL_ROOT_PASSWORD=root
8、可操作容器创建:docker run --name (自定义容器名) -it -p (访问端口:映射端口) 镜像id //bin/bash
9、容器与容器之间的连接:--link 连接的容器:容器,例如:--link tomcat:mysql ,这样tomcat就能访问mysql了。

  遇到的问题:
    [root@master ~]# docker run --name registry_server -d -p 5000:5000 
     WARNING: IPv4 forwarding is disabled. Networking will not work.
   解决方案:
      # vi /etc/sysctl.conf
      添加如下代码:
          net.ipv4.ip_forward=1

      重启network服务
      # systemctl restart network

      查看是否修改成功
      # sysctl net.ipv4.ip_forward
      如果返回为“net.ipv4.ip_forward = 1”则表示成功了

10、容器创建之后,再次进入容器:docker  container attach 容器id(有些镜像进不去,回车后没有反映说明该容器不能进入ctrl+c强制退出后容器会停止运行)(现在已经不建议是用了)
11、操作容器,不进入:docker  container exec 容器id 操作命令(ls,等)
12、停止一个或多个指定容器进程:docker kill 镜像id/名称或容器id\名称
13、暂停某个容器的所有进程:docker pause 容器id/名称
14、恢复某个容器的所有进程:docker unpause 容器id/名称
15、查看容器详情:docker container inspect 容器id
16、docker container 命令使用:
    attach Attach to a running container
    附加到正在运行的容器上
    commit Create a new image from a container's changes
    从容器的更改中创建一个新映像
    cp Copy files/folders between a container and the local filesystem
    在容器和本地文件系统之间复制文件/文件夹
    create Create a new container
    创建一个新容器
    diff Inspect changes to files or directories on a container's filesystem
    差异检查容器文件系统中文件或目录的更改。
    exec Run a command in a running container
    在运行的容器中运行命令
    export Export a container's filesystem as a tar archive
    导出导出一个容器的文件系统作为一个TAR归档文件
    inspect Display detailed information on one or more containers
    检查在一个或多个容器上显示详细信息。
    kill Kill one or more running containers
    杀死一个或多个正在运行的容器
    logs Fetch the logs of a container
    日志获取容器的日志
    ls List containers
    ls列出的容器
    pause Pause all processes within one or more containers
    在一个或多个容器中暂停所有进程
    port List port mappings or a specific mapping for the container
    端口列表端口映射或容器的特定映射
    prune Remove all stopped containers
     删除所有停止的容器
    rename Rename a container
    重命名容器
    restart Restart one or more containers
    重新启动一个或多个容器
    rm Remove one or more containers
    删除一个或多个容器
    run Run a command in a new container
    在新容器中运行命令
    start Start one or more stopped containers
    启动一个或多个已停止的容器
    stats Display a live stream of container(s) resource usage statistics
    统计信息显示一个动态的容器资源使用统计数据流。
    stop Stop one or more running containers
    停止一个或多个正在运行的容器
    top Display the running processes of a container
    顶部显示容器的运行过程。
    unpause Unpause all processes within one or more containers
    取消暂停取消暂停所有过程的一个或多个容器内
    update Update configuration of one or more containers
    更新一个或多个容器的配置
    wait Block until one or more containers stop, then print their exit codes
    等待块直到一个或多个容器停止,然后打印出它们的出口代码。

如果遇到命令不好用,建议去查相应的--help命令

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 13,584评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,706评论 15 147
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 9,840评论 0 27
  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 12,235评论 0 17
  • 像一颗有棱角的小石子 被时间推着赶着朝前走 只是随着世人潮流 没有人告诉对与错 懵懵懂懂跌跌撞撞中 一心想磨去棱角...
    惊岁阅读 3,097评论 0 2