docker常见使用方法

容器和镜像之间的关系

1. 安装软件

装在C盘会容易满,可以装在D盘,

"path\to\Docker Desktop Installer.exe"  install -accept-license  --installation-dir=D:\Docker\Docker --wsl-default-data-root=D:\Docker\data

并且在软件的设置的Docker Engine里添加阿里镜像源,

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

"registry-mirrors": [
    "https://***.mirror.aliyuncs.com"
  ]

2. 查看docker 版本号信息

docker version
docker info

3. docker 镜像命令

查看自己服务器中docker 镜像列表

docker images

拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本

docker pull 镜像名 
docker pull 镜像名:tag

删除镜像 ------当前镜像没有被任何容器使用才可以删除

#删除一个
docker rmi -f 镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)

# 强制删除镜像
docker image rm 镜像名称/镜像ID

# 删除所有缓存
docker builder prune -f

docker修改内容的保存:docker commit

docker容器相当于是docker镜像(类)的一个实例,对容器的修改,实际上是对实例的修改,而实例存在与内存中,重启后全部消失,因此,如需保存容器文件系统的修改,需要把实例的内容保存为新的docker镜像。

docker commit -m="提交描述信息" -a="作者" 容器id 自己起镜像名:tag

保存镜像到.tar

docker save 镜像名/镜像ID > 镜像保存在哪个位置与名字

加载<镜像.tar>

docker load < 镜像保存文件位置

添加一个新镜像来改tag

docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG

4. docker 容器命令

查看正在运行容器列表

docker ps
docker ps -a

新建一个容器(镜像的实例)

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d -p 宿主机端口:容器端口 --name 容器名 --gpus all 镜像名:Tag /bin/bash 
\ -v 宿主机文件存储位置:容器内文件位置
\ --restart=always # 设置开机自启动

进入容器

# 启动容器
docker start 容器ID/容器名
# 重启容器
docker restart 容器ID/容器名
# 更换容器名
docker rename 容器ID/容器名 新容器名

# 进入容器的两种方式
docker exec -it 容器名/容器ID /bin/bash
docker attach 容器名/容器ID

容器导出和导入
通过export 和 import 导出的容器形成镜像时, 该镜像只有一层。通过save 和 load 导出的镜像保留了原镜像所有的层次结构, 导出时原镜像有几层, 导入的时候就还是有几层。

docker export container > container.tar.gz
docker import container.tar.gz container:v1

退出容器

#-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
exit
# 优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q

停止容器

docker stop 容器名/容器ID

# kill容器
docker kill 容器ID/容器名

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

容器文件拷贝 —无论容器是否开启 都可以进行拷贝

#docker cp 容器ID/名称:文件路径  要拷贝到外部的路径   |     要拷贝到外部的路径  容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径  容器外路径
#从外部 拷贝文件到容器内
docker  cp 容器外路径 容器ID/名称: 容器内路径

5. dockerfile编写

把项目的代码比如./facechain文件夹放到和dockerfile同一级目录,

FROM nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04

ADD ./facechain /code

RUN gpg --keyserver keyserver.ubuntu.com --recv A4B469963BF863CC && \
    gpg --export --armor A4B469963BF863CC | apt-key add -

RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN  apt-get clean

RUN apt update && \
    apt-get update

RUN apt install -y \
        wget build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev \
        libreadline-dev libffi-dev libsqlite3-dev libbz2-dev liblzma-dev vim libsm6 libxext6 libgl1 libglib2.0-dev && \
    apt clean && \
    rm -rf /var/lib/apt/lists/*

RUN wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz && \
    tar -xzvf Python-3.8.18.tgz && \

RUN cd Python-3.8.18 && \
    ./configure --enable-optimizations && \
    make && \
    make install 

RUN ln -s /usr/local/bin/python3 /usr/local/bin/python && \
    ln -s /usr/local/bin/pip3 /usr/local/bin/pip

WORKDIR /code

RUN pip3 install -r requirements.txt && \
	pip3 install -U openmim && \
	mim install mmcv-full==1.7.0 && \
    rm -r /root/.cache/pip

镜像构建

docker build  -t ImageName:TagName dir
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值