• 关于ubuntu 16.04 docker常用命令


    1、sudo docker ps -a

    查看当前docker实例的信息:

    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES

    2、宿主机和容器之间的数据拷贝:

    sudo docker cp shared_dir/data/  CONTAINER ID:/home/xxx/ 或者 sudo docker cp shared_dir/data/  NAMES:/home/xxx/

    sudo docker cp CONTAINER ID:/home/xxx/ shared_dir/

    3、常用命令

    docker container ls -a #查看container信息

    docker exec -it containerID bash #进入container

    docker run -p 4000:80 imageName #将机器的 4000 端口映射到容器的 80 端口

    docker run -d -p 4000:80 imageName # 内容相同,但在分离模式下

    docker ps # 查看所有正在运行的容器的列表

    docker stop containerID # 平稳地停止指定的容器
    docker ps -a # 查看所有容器的列表,甚至包含未运行的容器
    docker kill containerID # 强制关闭指定的容器
    docker rm containerID # 从此机器中删除指定的容器
    sudo docker rm $(sudo docker ps -aq) # 从此机器中删除所有容器
    docker images -a # 显示此机器上的所有镜像
    docker rmi imagename # 从此机器中删除指定的镜像
    sudo docker rmi $(sudo docker images -q) # 从此机器中删除所有镜像
    docker login # 使用您的 Docker 凭证登录此 CLI 会话
    docker tag <image> username/repository:tag # 标记 <image> 以上传到镜像库
    docker push username/repository:tag # 将已标记的镜像上传到镜像库
    docker run username/repository:tag # 运行镜像库中的镜像

    3、制作镜像:

    docker build -t imagename Dockerfilepath

    # imagename:镜像名称,自定义

    # Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.”

    如: docker build -t hello_world .

    4、运行镜像:

    docker run -it --name c_name imagename
    -it:可交互
    c_name:container名称,自定义
    如:
    docker run --shm-size=8g -it --name hello5 hello_world

    5、Docker镜像文件导出和导入

    • 镜像文件导出

    sudo docker save imageid > xxxx.tar

    • 镜像文件导入

    sudo docker load < xxxx.tar

     

    镜像保存/载入:docker load/docker save;将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。

    容器导入/导出:docker import/docker export;将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

     

    6、启动、停止、重启容器命令:

    docker start container_name/container_id
    docker stop container_name/container_id
    docker restart container_name/container_id

    7、执行docker ps命令,出现 "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ..."问题

      执行sudo service docker start 命令,启动docker服务,返回

    docker start/running, process 2662

      此时进程启动成功,再执行docker ps,问题解决

    8、从容器中导入和导出及启动

        (1):导出容器
        如果要导出本地某个容器,可以使用 docker export 命令,导出容器快照到本地文件。
      $ sudo docker ps -a
      CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
      4391a814370e        ubuntu        "/bin/bash"         16 hours ago        Exited (0) 11 hours ago                       test
      $ sudo docker export 4391a814370e > test_export.tar

        (2):导入容器快照
        可以使用 docker import 从容器快照文件中再导入为镜像,例如
      $ cat test_export.tar | sudo docker import - test2:v1.0
      $ sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
      test2            v1.0             9d37a6082e97        About a minute ago   100.3 MB
     (3):使用导入容器生成的镜像,再次生成容器时候需要指定command("/bin/bash")

      使用GPU方式:

           sudo docker run --shm-size=8g -it -v /home/share:/share -p 192.168.10.214:5000:80  --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all test2:v1.0 "/bin/bash"

     9、其实只需要一条命令,就能实现Docker和宿主机之间共享文件。启动Docker镜像的命令一般如下:
      docker run -it xxx:latest /bin/bash  其中-it后面的参数就是你docker镜像的名称。
      现在只需要加一个-v参数即可。
      docker run -it -v /home/share:/share microsoft/dotnet:latest /bin/bash
      上面命令表示:把宿主机的/home/share目录挂载到xxx:latest容器的/share目录下
      执行完上面命令进入Docker容器后,进入/share文件夹下,ls后就会看到原来宿主机下目录“/home/share”的文件。

    10、重命名镜像:

        docker tag f534e2434f94(imageid) llf(repostitory_name):v1.0(tag_flag)

    11、docker stats 查询docker内存等状态

    12、sudo docker ps -as 查看容器导出后的大小

    13:修改容器存储路径:

     (1) vim /etc/systemd/system/docker.service.d/override.conf

    增加: --graph = /path

    (2)

    systemctl daemon-reload

    systemctl restart docker

    systemctl enable docker

  • 相关阅读:
    C++ 顺序表实现
    C++ 第三十四天
    C++ 第三十三天
    机器学习相关- 学习资料收集
    【Debian 8.8】Java 8 安装以及环境变量配置
    算法导论(第三版)练习 1.2-1 ~ 1.1-3
    条款33: 明智地使用内联
    条款32: 尽可能地推迟变量的定义
    条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用
    【Nginx】进程模型
  • 原文地址:https://www.cnblogs.com/llfctt/p/9567301.html
Copyright © 2020-2023  润新知