zoukankan      html  css  js  c++  java
  • Docker基础命令

    • Docker 常用命令

      • 学习网站:https://yeasy.gitbook.io/docker_practice/

      • 查看所有镜像:“docker images”

      • 删除image

        • docker rmi IMAGE ID
        • 若上步无法删除,则需要先删除运行过该images的container,先利用“docker ps -a”查看退出的container;再利用“docker rm CONTAINER ID”;再利用上步删除images
        • 若发现无法删除container,利用“docker ps”查看正在运行的container,再利用“docker stop CONTAINER ID”关闭container,最后再利用上一步操作完成
      • 非root用户加入docker用户组省去sudo

        • sudo usermod -aG docker

        • 查看用户组中有木有docker组“sudo cat /etc/group | grep docker”

        • 确定可以直接运行docekr命令 “docker info”

        • 若提示没有权限,则修改权限“sudo chmod a+rw /var/run/docker.sock”

      • docker基本概念

        • 镜像(Image):特殊的文件系统,不包含动态数据,类似于面向程序设计中的“类”
        • 容器(Container):容器是镜像运行时的实体,可以被创建,启动,停止,删除,暂停。类似于面向程序设计中的“实例”。容器的实质是进程,拥有独立的命名空间,root文件系统,网络配置等,处于一个隔离环境中。
        • 仓库(Repository):镜像构成后,很容易在本机上运行,为了在其他服务器上使用镜像,需要一个集中的存储,分发镜像的服务Docker Registry 。仓库可用于存储镜像,一个仓库包含多个标签,每个标签对应一个镜像。利用<仓库名>:<标签>指定具体是该软件的哪个版本的镜像。仓库多以两段式路径出现,如jwilder/nginx-proxy,前者用户名,后者软件名。
      • docker 运行

        • 有了镜像后,以该镜像为基础启动一个容器:“docker run -it --rm ubuntu:18.04 bash”
          • -it:表示-i(交互式操作)和-t(终端),-it表示交互式终端
          • --rm:容器退出后即删除
          • ubuntu:18.04:镜像:版本
          • bash:使用bash作为交互式shell,一般写作/bin/bash
        • 退出容器:exit
      • 使用Dockerfile定制镜像

        • 新建文本文件:“mkdir test && touch Dockerfile && vi Dockerfile”
        • 编辑Dockerfile
          • FROM:指定基础镜像。为了使镜像体积更小,可以使用:“FROM scratch”
          • RUN:执行命令行命令,分为shell格式和exec格式,前者为“RUN <命令>”,后者“RUN ["可执行文件",“参数1”,“参数2”]”,类似于函数调用的格式。为了降低镜像层数,尽量减少RUN的数量,不同命令可以使用“&&”串起来,用一个RUN将其放在一层。Dockerfile支持Shell类的行尾添加 的命令换行,行首添加#注释。
          • COPY:将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置,例如 COPY src pdffigure-detection,需要提前指定工作目录,"WORKDIR /apps"
          • ADD:类似于COPY,但是源路径可以是URL,一般不用
          • CMD:ubuntu中CMD默认为/bin/bash
          • ENV:设置环境变量
        • 构建镜像:在Dockerfile目录下直接:“docker build -t nginx:v3 .”,也可以用-f指定Dockerfile路径,例如:“docker build -f Dockerfile -t nginx:v3 .”
      • 其他镜像制作方法

        • 从rootfs压缩包导入:docker import 压缩包(压缩包下载地址)仓库名:标签
        • 保存镜像为压缩包:docker save Image(镜像名) 压缩名 ,例如"docker save hello-world" a.tar
        • 从压缩包加载镜像:docker load -i 压缩包地址 ,例如"docker load -i a.tar"
      • docker的容器与本地文件复制

        • 本地to容器:docker cp path Container ID:path,例如 "docker cp /home/wps/ssh.txt 1b4cd38be498:/apps/k.txt"
        • 容器to本地:docker cp Container ID:path path,例如"docker cp 1b4cd38be498:/apps/requirements.txt /home/wps/r.txt"
      • 容器操作

        • 查看所有容器:docker ps -a

        • 查看当前开启的容器:docker ps

        • 开启容器:docker start Container ID

        • 停止容器:docker stop Container ID

        • 进入容器:docker attach Container ID

        • 互不干扰的进入容器:docker exec -it Container ID bash

        • 导出容器到本地:docker export Container ID > 压缩包名

        • 导入容器快照:docker import 压缩包 仓库名:标签

        • 删除容器:先终止容器,再删除:"docker rm Container ID"

        • 容器保存为镜像:docker commit [Container ID] [仓库名:标签]

      • 仓库操作

        • 查找官方仓库镜像:docker search 镜像名
        • 登录:docker login
        • 拉取镜像:docker pull 镜像名
        • 推送镜像:docker tag 镜像名 username/镜像名,例如:docker tag ubuntu:18.04 username/ubuntu:18.04;也可以登录后直接push,例如:docker push username/ubuntu:18.04
  • 相关阅读:
    java基础面试题:说说&和&&的区别
    java基础面试题:java中有没有goto? 在JAVA中如何跳出当前的多重嵌套循环?
    Java基础面试操作题: 获取 1-20 之间的随机数,共计 20 个,要求不能重复 获取 1-20 之间的随机数,共计 10 个,要求不能重
    Intellij设置Eclipse 快捷键
    Intellij 安装sonarlint
    Intellij 关闭参数提示
    Linux中Firefox——Firebug插件安装及使用
    Linux中Firefox——Httpfox插件安装及使用
    OpenCV——Haar-like特征
    Python学习笔记6(列表生成式)
  • 原文地址:https://www.cnblogs.com/peng-yuan/p/14874555.html
Copyright © 2011-2022 走看看