1. 常用命令
创建有端口的容器
docker run --runtime=nvidia --user 0 --name=yzn -d -e VNC_RESOLUTION=1920x1080 -p 6905:5901 -v /home/BackUp/docker-file/common:/media/common -v /home/BackUp/docker-file/yzn:/media/yzn siat123/yzn_pycharm:latest
学习链接
- 官网链接 https://docs.docker.com
- 教程链接 https://www.runoob.com/docker/docker-start-stop-restart-command.html
docker
docker --help # 帮助
docker version # 版本
docker info # 详细信息
save one or more images to a tar archive (streamed to STDOUT by default)
docker save yzn-base > yzn-base.tar # 将镜像保存成压缩文件
load Load an image from a tar archive or STDIN
docker load < busybox.tar.gz # .tar.gz
docker load --input fedora.tar # .tar
docker start/stop/restart 启动/停止 容器
docker start IDa40c0e2ff492 # 启动一个或多个已经被停止的容器
docker stop IDa40c0e2ff492 # 停止一个运行中的容器
docker restart IDa40c0e2ff492 # 重启容器
docker images 查看镜像
docker images # 查看本地镜像
docker images -a # 查看所(含中间镜像层)
docker images -q # 只看ID
docker images -qa # 所有ID
docker images --help # 帮助
docker history
docker history ID # 查看镜像ID的更新历史
docker rm、rmi 删除 容器/镜像
docker rm # 删除 容器
docker rmi # 删除 镜像
docker rmi -f hello-world:latest # 强制 删除 镜像
docker commit 提交容器,以生成镜像
命令
docker commit [image name] # 生成镜像
具体的使用方法
docker commit -m "This is yzn base env with cuda9.0 and conda-pytorch " -a “yzn” yzn-base1 siat123/yzn-base2 # 生成镜像。-m 是message,-a 是username,使用容器yzn-base1(CONTAINER ID) 生成镜像yzn-base2
docker run 运行 镜像
docker run # 运行镜像,生成容器
docker pull (从远程仓库)拉取镜像 至本地
docker pull siat123/yzn-base1:latest # 不加tag,默认拉取latest版本
docker push 推送(本地)镜像 至远程仓库
docker push siat123/yzn-base2 # 默认推送latest版本
2. 常见的使用方法
2.1. 服务器(电脑)突然停止后,如何重启之前运行的容器
docker ps -a # 查看所有的容器,包含没有在运行的容器
docker restart a40c0e2ff492 # 重启容器的ID
docker ps # 查看正在运行的容器
3. 关于docker的一些知识(科普不用细看)
如何理解镜像和容器的关系?
- 容器与镜像的关系类似于面向对象编程中的对象与类;
- 镜像(image)是类,容器(container)是对象,一个镜像可以产生多了容器。
- 容器通过镜像启动,镜像启动之后自动生成容器。
- 镜像像一张系统安装光盘(可盘后不能更改),容器是安装好的系统。
- 当镜像的容器还存在时,是不能删除镜像的。
docker的5个使用步骤?
- 应用程序有很多组件,拆分它们;
- 选择成熟的基础镜像;
- 添加安全管理;
- 添加代码;
- 配置测试部署。
Docker的4个组成?
- docker Client客户端
- Docker Daemon守护进程
- Docker Image镜像
- Docker Container容器
- 我们通过客户端写命令,然后客户端将命令发送给守护进程,守护进程再将命令执行的结果返回给客户端,这就使我们能通过命令查看执行结果,镜像就是容器的源代码,容器通过镜像启动,使用仓库来保存用户构建的镜像,仓库分为共有和私有。
系统学习docker的知识总结?
-
学习链接:https://www.w3cschool.cn/use_docker/use_docker-phr127
-
Docker 相关概念:通过镜像生成有端口的容器
- 镜像运行之后生成容器,当需要与容器立即交互时,须给容器分配一个虚拟终端(-t 命令实现),通过分配的虚拟容器IP和端口(8000)实现对容器的交互。
- 容器虚拟IP的查看方法
- docker 的网络配置:将实体机的端口映射到容器端口
docker run -d -p 5000:22 -p 18888:8888 zys:common
#实体机 5000 端口映射到容器 22 端口, 同时 18888 端口映射到容器 8888 端口,有了端口之后就可以使用ssh登录到容器了。
- docker 的分区挂载和数据卷:
- 需要挂在的原因是容器中的文件系统是独立的, 一旦容器被删除, 则文件系统也会被删除。
- 将实体机的目录(前面)挂在到容器的文件系统文件(后面)下
docker run -d -p 5000:22 -v /home/zys/temp:/root/volumn zys:common
- docker 的镜像服务器
这里说的镜像服务器(docker-registry )就是指仓库Hub,会使用pull和push命令,和GitHub的使用方法相同的。
docker创建镜像的两种方式?
- 通过执行Dockerfile文件生成
docker build
- 通过已有的新容器(如,在旧容器中安装Pycharm或vim等软件后)生成自定义镜像
docker run <镜像名> # 通过镜像生成容器
docker commit <容器名> <镜像名> # 利用容器生成镜像
END