docker相关的概念:
- 镜像:把操作系统、软件、环境变量打包成一个包,就是镜像,在镜像里面,类似一个虚拟机。
- 仓库:存储镜像的地方
镜像
- 用来制作镜像的内容写在一个文件中,文件名称必须为:Dockerfile,内容如下
- 第一行 FROM hub.XXX.lan/base:v1.0
- 从哪个版本镜像进行继承,关键字是FROM, hub.XXX.lan是我们仓库的地址,斜线后面是镜像名称,冒号后面是镜像的版本,如果不填写,默认就会使latest版本
3.第二个关键字 RUN 后面跟linxu的命令,多个命令之间可以用 &&,或者多行,每行RUN开头
- 从哪个版本镜像进行继承,关键字是FROM, hub.XXX.lan是我们仓库的地址,斜线后面是镜像名称,冒号后面是镜像的版本,如果不填写,默认就会使latest版本
- 第三个关键字 ENV 设置环境变量,后面跟设置环境变量的命令即可,不用带export关键字
docker相关命令
- 在docker的管理节点使用docker -H :4000 command parameters
- 如果是计算节点,则使用docker command pramters
镜像相关命令
- docker build -t 镜像名称:版本号 dockerfile所在的目录==构建镜像的节点不能是管理节点==
- 构建完镜像,需要将镜像推送到仓库中,命令为:
- docker push hub.XXX.lan/XXX_task:v1.0
- 在计算资源上需要使用镜像,那么需要将镜像下拉到计算节点(一般在管理节点),命令为:
- docker pull hub.XXX.lan/XXX_task:v1.0
- 执行完命令后,它会将镜像下拉到每个计算节点的本地存储上,==所有镜像多了以后,有可能把计算节点的本地存储占满,另外因为所有节点一起下拉,有可能出现部分节点没有下拉成功,需要大家自己检查,这个目前只能到每个计算节点上去查看,但是如果这个版本号存在过,比如XXX_task:v1.0,如果这次下拉新景象还是v1.0版本,那么查看镜像的时候,你会发现这个版本号存在2行==
- 查看当前计算节点镜像列表命令:
- docker images
- 不同的docker镜像id不会相同,所以如上面所说,名称:版本号即使相同,但是id也不会相同
- 删除容器 docker rmi 镜像id,做个之间用逗号分隔
- 计算节点上的一个镜像有不同版本,尽量将不使用的版本删除掉,释放存储占用==因为镜像占用本地存储==
查看当前计算节点的容器信息
- docker ps
- 一般会加一个 -a参数,能够显示最多的信息,在显示结果中,已经运行完成的容器,会出现Exited(x),如果x是0代表正常退出,如果x是非0,代表容器程序异常退出,x就是执行命令异常的返回码,==只要容器显示在ps的结果中,那么容器申请的资源就会一直占据着,不会释放==
查看容器log:
- docker logs 容器id
- 显示的结果是运行程序中显示的log日志以及容器的一些相关信息,可以辅助判断程序异常状况
启动容器
- 用现有镜像启动容器(正常是docker run,为了服务器安全,只能使用docker_run命令,也不用加-H :4000)
- docker_run --rm -v /share:/share/ -it hub.XXX.lan/ref_mapping:v1.0 bash
- ==run中的参数--cpuset-cpus 是设定cpu上线 ; -m 是设定内存上线,后面可以跟单位G M==
- 基于基础镜像,同时将脚本挂载到镜像中
- docker -H :4000 run --rm -v /path/to/imagesname:/opt/ -v /share:/share/ -it hub.XXX.lan/base:python2.7-perl-java1.8-R-base bash
- ==大家手动启的容器,加了--rm参数,如果退出后就会自动,容器就会自动销毁,不加参数需要手动删除容器,不然这个容器占用的资源永远被占用,但不使用==
进入容器:
- 如果有一个在运行的容器,可以直接进入其中:
- docker exec -it 9f4d456dbb56 bash
查看容器状态
- docker stats
如何进入退出的容器
- 先查容器的sha256:
docker -H :4000 commit <容器ID>
- 会看到一长串字符, 记下前几个 (长度大概跟容器ID差不多就行了)
- 然后进入这个容器:
docker -H :4000 run -it -v /share/:/share/ --cap-add SYS_ADMIN --device /dev/fuse id bash
查看所有计算节点的信息(用的比较少):
docker info
其他命令
docker 还有其他相关命令,可使用docker help进行相关查看,或者百度
网友评论