Docker常用命令

1. 前言

由于要在实验室的服务器上跑实验,记录一下常用的docker命令

2. 镜像的常用命令

  • 列出: sudo docker images
    在这里插入图片描述
  • 运行一个镜像
    sudo docker run -t -i ubuntu:18.04 /bin/bash
    其中-t 表示开启一个terminal, -i表示接受input
  • 创建镜像(important)
    • 修改已有镜像

      由于实验的镜像都创建好了,我们主要是修改已有镜像,然后commit成我们的名字。

      步骤:

      1. 先使用已有的镜像启动容器
        sudo docker run -t -i myenv:v1 /bin/bash
        ps: 要记住容器的ID,等下要用到。root后面的就是容器id。
        在这里插入图片描述
      2. 在容器中随便添加应用
      3. exit退出,然后用docker commit命令提交
        sudo docker commit -m "Add somethings" -a "sanjay" d729a4a413ea mynewdocker:v1
        其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。
        在这里插入图片描述
        使用 docker images 来查看新创建的镜像。
        在这里插入图片描述
    • 利用Dockerfile创建镜像

  • 存出和载入镜像
    • 存出镜像
      sudo docker save -o ubuntu_18.04.tar ubuntu:18.04
    • 载入镜像
      sudo docker load --input ubuntu_18.04.tar
  • 移除镜像
    sudo docker rmi ubuntu18.04
    Note: 移除镜像是docker rmi, 移除容器的命令是:docker rm
    在删除镜像之前要先用docker rm删除依赖于这个镜像的所有容器。

3.容器的常用命令

  • 新建容器并启动
    sudo docker run ubuntu:18.04 /bin/echo 'Hello sanjay'
    这个输出Hello sanjay
    启动一个容器bash终端:
    sudo docker run -t -i ubuntu:18.04 /bin/bash

  • 启动已终止的容器
    docker start可以将一个已经终止的容器启动运行,具体:

    1. 首先用sudo docker ps -a可以查看所有的容器
    2. 然后选择你想要启动的容器id,比如我想要启动的是id是:c55969249f25
      那么我的命令就是:
      sudo docker start c55969249f25
  • 以守护态(Daemonized)运行

    实验室的机器,一般你都是让他在后台跑,所以用守护态运行

    加参数 -d即可实现。
    eg. sudo docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello; sleep 1; done"
    容器启动后返回一个唯一的 id,也可以通过 docker ps 命令来查看容器信息。
    sudo docker ps

  • 终止容器
    使用sudo docker stop来终止一个运行中的容器。
    此外,当Docker容器中指定的应用终结时,容器也自动终止。 例如对于只启动了一个终端的容器,通过 exit命令或 Ctrl+d来退出终端时,所创建的容器立刻终止。
    终止状态的容器可以用sudo docker ps -a看到,处于终止状态的容器,可以用sudo docker start {容器id号}来启动,docker restart会将一个运行态的容器终止,然后再重新启动它。

  • 进入容器
    在使用 -d 参数时,容器启动后会进入后台。 某些时候需要进入容器进行操作,有很多种方法,包括使用 docker attach命令或nsenter工具等。
    用这个命令进入更好
    sudo docker exec -it id /bin/bash

  • 导出和导入容器

    • 导出本地某个容器
      • sudo docker export id > ubuntu.tar
    • 导入容器快照
      使用docker import从容器快照文件中导入为镜像
      • sudo docker import - test/ubuntu:v1.0
        ps:用户既可以使用 docker load来导入镜像存储文件到本地镜像库,也可以使用docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
  • 删除容器
    sudo docker rm {id or name}
    如果容器在运行,添加-f可以强行删除。

4.FQA

Actually i have a question which is that if i want to run a docker as a daemonized status but when i enter the docker using command sudo docker exec -it id /bin/bash to check the task and after that i want to exit using the command exit in the docker then i will kill the docker running. So how can i exit without killling the docker and keep it in daemonized status?

5.参考资料

  1. 极客学院
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zedjay_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值