1

Pascal1129

## 0.0、参考资料

Docker中文文档:https://yeasy.gitbooks.io/docker_practice/

## 0.1、前期准备与测试程序

查看docker版本

    $ docker --version

新建 docker 用户组,并将自己的账号添加进docker组,以避免权限问题:

    $ sudo groupadd docker
    $ sudo usermod -aG docker pascal
退出当前终端并重新登录即可生效

尝试运行镜像,测试 Docker 是否安装正确,运行后自动删除容器:

(无bash)

    $ docker run --rm hello-world

(有bash)

    $ docker pull ubuntu:18.04
    $ docker run -it --rm \
        ubuntu:18.04 \
        bash
    # exit or Ctrl+D


## 1、常见命令
列出镜像

    $ docker image ls
    $ docker image ls ubuntu             # 根据仓库名列出镜像
    $ docker image ls ubuntu:18.04        # 指定仓库名和标签

删除镜像

    $ docker image rm
    $ docker image prune                # 删除虚悬镜像

镜像体积

    $ docker system df

列出容器

    $ docker container ls
    $ docker container ls -a            # 查看全部容器,包括终止状态
    $ docker ps -a                        # 老版的查询的指令

清除容器

    $ docker container rm  xxx            # 该容器处于终止状态
    $ docker container rm -f xxx        # 该容器处于运行状态,强制清除
    $ docker container prune            # 清楚所有处于终止状态的容器

## 2、容器操作
除docker image/container ls/prune外,别的指令大多可以省略image/docker,多种写法是因为历史写法的一致性和可读性较差,后期指令的格式进行了升级

典型操作
实例化一个镜像,运行后终止,启动再进入,终止容器并删除容器

    $ docker pull ubuntu:18.04
    $ docker run -it  \
        ubuntu:18.04 \
        bash
    # exit or Ctrl+D
    $ docker start [容器]                
    
    $ docker container ls -a 可查阅容器ID
    
    $ docker exec -it [容器] bash
    $ docker stop [容器]
    $ docker rm  [容器]

获取镜像

    $ docker pull 仓库名[:标签]

实例化一个镜像

    $ docker run  [参数]  <镜像>
        -i 交互,让容器输入保持打开 
        -t 分配一个伪终端并绑定到容器的标准输入上
        -d 后台运行,结果不输出于宿主机,结果可用docker --rm 容器退出后删除,避免浪费空间
        logs [容器]查看


进入处于后台的容器
已终止的容器需要先启动:

    $ docker start    [容器]
    $ docker restart [容器]    # 终止并重启一个运行态的容器

后台运行的容器可直接进入:

    $ docker attach 243c                # exit后,容器会停止
    $ docker exec -it 69d1 bash            # exit后,容器不会停止,因此推荐使用;

终止容器

    (容器外)$ docker stop [容器]        
    (容器内)# exit or Ctrl+d

## 3、Docker数据管理
挂在主机目录:

    $ nvidia-docker run -it \
        --name ron \
        -v /home/pascal/data:/root:ro \
        detectron:c2-cuda9-cudnn7 \
        bash
    
    -v 宿主机目录:docker目录,如果目录不存在则创建
    --name 不可重名


## 4、管理维护
导出容器

    $ docker export [容器] > ubuntu.tar
导入容器

    $ cat ubuntu.tar | docker import - pascal1129/ubuntu:v1.0
    $ docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
    test/ubuntu         v1.0                9d37a6082e97        About a minute ago   171.3 MB

提交镜像
登陆docker账号

    $ docker login

新建一个容器,后台运行

    $ nvidia-docker run -dit \
        --name container_try \
        -v /home/pascal/data:/data \
        vistart/build_tensorflow:py36-cuda10.0-cudnn7-tensorrt5-devel-ubuntu18.04 \
        bash

进入容器,按需改动

    $ nvidia-docker exec -it container_try bash

提交容器为镜像

    $ docker commit \
        --author "pascal1129" \
        --message "test" \
        container_try \
        pascal1129/dl:conda_py36-cuda10.0-cudnn7-ubuntu18.04

查看历史记录

    $ docker history pascal1129/dl:conda_py36-cuda10.0-cudnn7-ubuntu18.04
推送镜像到云端

    $ docker push pascal1129/dl:conda_py36-cuda10.0-cudnn7-ubuntu18.04

保存别人的:

    $ docker tag someone/xxx:xxx pascal1129/xxx:xxx
    $ docker push pascal1129/xxx:xxx https://hub.docker.com/r/pascal1129/


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值