• 工作中docker常用命令方便回忆


    背景

    docker适配的时候命令总是记得很熟,当版本结束了docker命令忘的差不多,这次记录一下

    docker 基本操作

    获取镜像

    docker pull ubuntu

    列出镜像列表

    docker images

    删除镜像

    docker rmi

    运行ubuntu镜像

    docker run ubuntu:15.10 /bin/echo "Hello world"

    docker run -it ubuntu /bin/bash

    • docker: Docker 的二进制执行文件。
    • run: 与前面的 docker 组合来运行一个容器。
    • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
    • /bin/echo "Hello world": 在启动的容器里执行的命令

    提交容器副本

    docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

    各个参数说明:

    • -m: 提交的描述信息
    • -a: 指定镜像作者
    • e218edb10161:容器 ID
    • runoob/ubuntu:v2: 指定要创建的目标镜像名

    打包镜像

    docker save -o mytest.tar mytest:v1

    运行tar包

    docker load --input mytest.tar

    docker run -i -t -v -p

    我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:

    docker run -i -t ubuntu:15.10 /bin/bash

    • -t: 在新容器内指定一个伪终端或终端。
    • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
    • -v:给容器挂载存储卷,挂载到容器的某个目录 顺序:主机:容器
    • -p:端口映射
    • --privileged=true 指定容器是否为特权容器。比如systemctl命令
    • --restart="no" 指定容器停止后的重启策略:
      no:容器退出时不重启
      on-failure:容器故障退出(返回值非零)时重启
      always:容器退出时总是重启

    docker run -itd -v /home/hyzhou/docker(本地目录):/data(容器目录) ubuntu:14.04 /bin/bash

    后台运行ubuntu

    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    docker run -itd --name ubuntu-test ubuntu /bin/bash

    docker logs

    在宿主主机内使用 docker logs 命令,查看容器内的标准输出:

    停止容器

    docker stop 容器id

    查看容器列表

    docker ps -a

    进入容器

    docker exec -it nginx /bin/bash
    

    在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

    • docker attach
    • docker exec:推荐大家使用 docker exec 命令,因为此命令会退出容器终端,但不会导致容器的停止。

    导出和导入容器

    docker export 1e560fca3906 > ubuntu.tar
    

    可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

    
    docker import - new_ubuntu < ubuntu.tar
    

    容器端口映射

    docker run -d -P training/webapp python app.py

    • -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

    我们也可以通过 -p 参数来设置不一样的端口:

    docker run -d -p 5000:5000 training/webapp python app.py

    docker拷贝

    docker cp nginx:/www /tmp/#将nginx容器的/www 拷贝到本地/tmp下

    创建容器时忘了添加参数 --restart=always 当 Docker 重启时容器未能自动启动

    docker container update --restart=always 容器名字

    在容器外执行命令

    docker exec -it $DOCKER_ID /bin/bash -c 'cd /packages/detectron && python tools/train.py'

    获取所有的容器id(仅显示id)

    docker container ls -q

  • 相关阅读:
    Webcodecs解析GIF图
    bash 查询某文件夹,文件内容
    SpringBoot整合Quartz实现分布式调度
    SpringBoot实现本地(网络)文件下载和zip压缩包批量下载
    SpringBoot 接口防止恶意刷新和暴力请求
    vue3 如何使用ref引用dom来清除表单上一次值
    灵雀云+麒麟软件携手打造全栈云原生联合解决方案
    2022云原生网络趋势 | K8s托管整个基础设施、多云、边缘计算、安全等场景,将云原生网络带向新战场
    医疗机构如何利用云原生加速智慧医院建设?
    软件定义汽车变局下,车企如何通过云原生构建“核心壁垒”?
  • 原文地址:https://www.cnblogs.com/tarzen213/p/16645700.html
Copyright © 2020-2023  润新知