docker基本操作(查看、运行、加载、备份、文件挂载)

一、基础介绍

1.镜像(Image) 一个特殊的文件系统,包含所需的程序、库、资源、配置; 不包含任何动态数据,其内容在构建之后也不会被改变; 分层存储: 镜像构建时,会一层层构建,前一层是后一层的基础,每一层构建完就不会再发生改变。

2.容器(Container) 容器是镜像运行时的实体,可以被创建、启动、停止、删除、暂停等; 实质是进程,运行于属于自己的独立的命名空间; 容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层; 容器消亡时,容器存储层也随之消亡; 最佳实践:不应该向其存储层内写入任何数据,应该使用数据卷(Volume)或者或者绑定宿主目录。

3.仓库( Repository ) 一个 Docker Registry 中可以包含多个仓库(Repository); 每个仓库可以包含多个标签(Tag); 每个标签对应一个镜像。

二、基本操作

1.查看image:docker image ls

2.运行image:docker run -it 名字(则进入容器)

   例子:docker run --name test -it centos:7.6.1810 bash     

              此时从bash退出,docker进入暂停状态,可用--name设定名字方便寻找,不设定会自动随机生成,加-d为后台执行

3.退出容器:exit

4.查看运行中的容器:docker container ls -a   或者 docker ps -a  

注:不加 -a 或 -all 是运行中的container而不是全部,-q输出ID

5.将做完修改的容器保存为新的镜像:docker commit 容器名 新镜像名

可在原image基础上做image或从dockerfile做,参考如下:

https://blog.csdn.net/super_lixiang/article/details/83627252

https://blog.csdn.net/u010886217/article/details/91910710

6.进入运行中的容器:docker attach 容器ID   或者     docker exec -it 容器ID或容器名字  /bin/bash

注:attach退出则暂停容器,exec退出则容器扔运行,推荐exec

       docker exec :在运行的容器中执行命令

                        -d :分离模式: 在后台运行

                         -i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;

                         -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

可用docker start 容器名或ID 启动容器;docker stop 容器名或ID 关闭容器;kill 杀掉;restart 重启。

7.文件拷贝至容器:docker cp 本地文件路径 容器ID:目的路径

8.白皮书:https://docs.docker.com/develop/

9.文件挂载: -v 参数,绝对路径

例子:运行镜像fyq/caffe 给容器起名字seg_test 挂载本机文件到容器,本机文件路径:容器路径,容器路径要写绝对路径,也可容器文件挂载到容器  docker run --name seg_test -v /home/fyq/face_seg:/down -it fyq/caffe

注:一旦container被创建之后,无法再映射新的目录,一种解决方案是用commit命令将当前container打包成image,再从image启动

10.镜像拉取:docker pull 镜像名

     注:可以使用 docker search 命令搜索存放在 Docker Hub 中的镜像

11.备份image    docker save 镜像名 -o 备份名.tar

    加载image   docker load -i 备份名.tar

    删除image   docker image rm 镜像名   或者  docker rmi 镜像名 (删除容器就把image换成container,使用名字/id都可以)

                        删除前先停止容器,docker container stop  ID 

    删除所有停止的容器    docker container prune

12.volume:https://www.cnblogs.com/lishanlei/p/9503596.html

13.获取docker长ID:docker inspect -f '{{.ID}}' docker_name

      可以通过 长ID 使用 “docker cp 源 目的” 直接向docker 内拷贝文件

14. 查看容器IP:(1)docker inspect 容器ID,其中IPAddress为IP

                            (2)docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名

注:可使用docker inspect 容器ID | grep IPAddress来过滤数据。

15.删除已退出的container:

docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

docker ps -a | grep Exit | awk '{ print $1}'  | xargs sudo docker rm

docker rm $(docker ps --all -q -f status=exited)

16. 报错和解决方法:https://blog.csdn.net/qq_39615245/article/details/82711967?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值