0
点赞
收藏
分享

微信扫一扫

快速入门Docker

菜头粿子园 2022-03-22 阅读 66
docker

Docker

Docker三要素:镜像(image)、容器(contarin)、registry(包含多个仓库) **镜像:**顾名思义就是咱们将要把代码和环境打包在一起的这个产物,就是镜像。 **registry:**那么镜像存储在哪里呢 所以就有了registry,是各云厂商提供的镜像存取服务,类似网盘,将镜像存储在云端仓库,方便我们随时随地在不同的介质上运行自己的代码或分享代码。比如你要把本地开发好的代码放在服务器上做耗时的训练动作,那么只需要在服务器上直接拉取自己云端的镜像运行即可。当然除了存储以外还有诸如版本管理等服务功能,类似git. **容器:**运行起来的镜像我们称之为容器,可以理解为运行环境或者实例。其实质是进程,随着代码运行结束,进程结束容器也就消失了。

docker安装

linux

sudo curl -sS https://get.docker.com/ | sh

测试

docker run hello-world

查看版本

docker --version

docker 基础命令

拉取镜像

# docker pull [选项] [docker镜像地址:标签]
docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-py3

开放镜像列表

https://tianchi.aliyun.com/forum/postDetail?postId=67720

运行镜像并进入容器

# 交互式运行
docker run -it registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-py3 bash
# 后台运行
docker run -itd registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-py3 /bin/bash

查看镜像

# 查看本地镜像
docker images

# 查看运行中的容器,罗列的是当前活跃的容器 
docker ps

# **CONTAINER ID** 
# 容器唯一id 
# 可以通过指定这个ID操作exec shell进入容器、
commit 这个容器的修改、
tag 给这个容器打标签等 
docker ps 
# 要查看所有容器执行,包括非运行以及运行的容器
`docker ps -a`

# 进入运行中/后台运行的容器
docker exec -it [CONTAINER ID] /bin/bash

构建基础镜像

保存修改并定义为新的镜像

# 保存并创建新的镜像
docker commit [CONTAINER ID] registry.cn-shanghai.aliyuncs.com/test/pytorch:new_name

打TAG

有时需要对临时版本,或者节点版本做一个标记保留,打TAG标签非常好用,并不会额外占用空间

# 打标签
docker tag registry.cn-shanghai.aliyuncs.com/test/pytorch:myversion my_tmp_version:0.1

推送镜像到仓库

# 推送到仓库
docker push registry.cn-shanghai.aliyuncs.com/test/pytorch:myversion

使用dockerfile构建镜像

Dockerfile文件

# Base Images
## 从天池基础镜像构建(from的base img 根据自己的需要更换,建议使用天池open list镜像链接:https://tianchi.aliyun.com/forum/postDetail?postId=67720)
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:latest-py3
##安装依赖包
RUN pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple 
##或者从requirements.txt安装
##RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 
## 把当前文件夹里的文件构建到镜像的根目录下,并设置为默认工作目录
ADD . /
WORKDIR /
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
# 通过这个命令构建
docker build -t myversion:0.10.1 .
# 运行镜像并进入容器
docker run -it myversion:0.10.1 /bin/bash
$ docker ps

CONTAINER ID 	IMAGE  				COMMAND  	CREATED  STATUS  PORTS     NAMES
dcb6e028a268 	myversion:0.10.1   "/bin/bash"   About 	 minute   		naughty_mclean

删除镜像/容器

# 删除镜像:
docker rmi registry.cn-shanghai.aliyuncs.com/target:test

# 删除容器:
docker rm [CONTAINER ID]

# 如果容器还在运行,则会删除失败,应先结束掉容器:
docker kill [CONTAINER ID]
举报

相关推荐

0 条评论