docker下载镜像&新建容器&打包容器&打包tar&加载tar
首先查看下现有的容器和imagedocker ps#已启动的所有容器docker ps -a#所有容器,包括未启动的docker images#当前已有的镜像一、查找images例:查找nvidia相关的image[root@localhost ~]# docker search -s 10 nvidiaFlag --stars has been deprecated, use --filter=
首先查看下现有的容器和image
docker ps
#已启动的所有容器
docker ps -a
#所有容器,包括未启动的
docker images
#当前已有的镜像
一、查找images
例:查找nvidia相关的image
[root@localhost ~]# docker search -s 10 nvidia
Flag --stars has been deprecated, use --filter=stars=3 instead
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nvidia/cuda CUDA and cuDNN images from gitlab.com/nvidia… 699
nvidia/digits DEPRECATED 70
nvidia/caffe DEPRECATED 39
nvidia/cudagl CUDA + OpenGL images from gitlab.com/nvidia/… 24
nvidia/opengl OpenGL images with libglvnd from Nvidia 24
nvidia/k8s-device-plugin Images for github.com/NVIDIA/k8s-device-plug… 22
nvidia/cuda-ppc64le CUDA and cuDNN images from gitlab.com/nvidi… 14
nvidia/opencl OpenCL images from gitlab.com/nvidia/opencl 14
nvidia/driver Driver images from https://gitlab.com/nvidia… 12
参数说明:
NAME: 镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL: 是否 docker 官方发布
stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
AUTOMATED: 自动构建。
二、下载images
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
//拉取一个或多个镜像使用docker pull,如果没有指定镜像标签,docker默认使用:latest
//下面的示例命令就会拉取最新的镜像文件,等同于:docker pull debian:latest
参数说明:
- -a :拉取所有 tagged 镜像
- --disable-content-trust :忽略镜像的校验,默认开启
例子:pull 一个nvidia/drive的镜像
[root@localhost data]# docker pull nvidia/drive
Using default tag: latest
latest: Pulling from nvidia/dcgm-exporter
a1125296b23d: Pull complete
3c742a4a0f38: Pull complete
4c5ea3b32996: Pull complete
1b4be91ead68: Pull complete
e93a0823362a: Pull complete
a7548f29ba00: Pull complete
a4a3c4393c19: Pull complete
f6d9edaa5238: Pull complete
Digest: sha256:69403133a54b9600337cb052cc2aafd38192f3a644a79542e4fa92a487cd3ccf
Status: Downloaded newer image for nvidia/drive:latest
docker.io/nvidia/nvidia/drive:latest
[root@localhost data]#
三、利用images新建容器
docker run -itd --name face001 -p 3306:3306 --cap-add SYS_ADMIN --privileged face:V1 /usr/sbin/init
#run -itd 创建容器并运行于后台,进入容器控制台
#--name face001 将容器命名为face001
#-p 3306:3306 容器映射端口(【端口映射】-p 3306:3306 宿主机端口:容器端口)
#--cap-add SYS_ADMIN 添加系统权限SYS_ADMIN
#-privileged 特权容器(特权容器拥有所有的capabilities)
#face:V1 创建容器的镜像image
#执行/usr/sbin/init
参数说明:
-d, --detach=false 指定容器运行于前台还是后台,默认为false -i, --interactive=false 打开STDIN,用于控制台交互 -t, --tty=false 分配tty设备,该可以支持终端登录,默认为false
-p, --publish=[] 指定容器暴露的端口(【端口映射】-p 3306:3306 宿主端口:容器端口)
-w, --workdir="" 指定容器的工作目录 -c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用
-m, --memory="" 指定容器的内存上限
--cap-add=[] 添加权限,权限清单详见:capabilities(7): overview of capabilities - Linux man page
--privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities
--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
创建完成后可以输入docker ps查看是否已经运行
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4dfd419d3adc face "/usr/sbin/init" 20 hours ago Up 20 hours 0.0.0.0:3306->3306/tcp face001
此步骤完成后便可进入容器进行需求环境部署,部署完成后则可以继续下面的步骤
进入容器命令:docker exec -it 4dfd419d3adc bash
四、打包容器为image
完成创建容器和环境部署工作后就可以将当前容器打包成新的image以方便移植部署
#正式环境环境建议使用dockerfile
docker commit -a "luck-lyj" -m "commit-test" 7740db56288a face:v1
#打包命令
参数说明:
格式如:docker commit -a -m 现有容器ID
commit参数进行保存镜像,
-a 提交人的姓名
-m “提交内容”,
保存后的 名称:版本号(自定义)
查看生成后的image
docker images
五、打包成tar
docker save -o face_v1.tar face:v1
参数说明:
save 保存到当前路径
-o 打包后的tart包名称
对应打包的image 名字:TAG
备注:建议打包成tar后再次使用压缩工具打包成 /.tar.gz/zip/rar 包,可以压缩较大程度上减少文件大小
六、加载tar
docker load -i face_v1.tar
然后查看是否存在该镜像
docker images
七、给自己鼓掌
恭喜恭喜!!!
更多推荐
所有评论(0)