目录
- 安装 Hyper-V
- 下载docker desktop
- 开启虚拟化
- 是否安装成功
- 连接国内镜像仓库
- 问题一:无法启动容器 docker run -d ubuntu
安装 Hyper-V
Hyper-V 是微软开发的虚拟机,步骤如下
鼠标右键左下角windows–>应用和功能–>选择右上角的相关设置–>启用或者关闭windows功能–把Hyper-V中的几个全勾选上
下载docker desktop
然后下载docker-desktop
下载完成后就下一步下一步安装,让它自己运行,如果没报错就可以开始下一步
如果报错了,点击任务管理器–>性能,查看虚拟化有没有启用
如果没启用,则需要进入BIOS设置
开启虚拟化
电脑关机重启,在启动的过程中狂按Delete键(每个品牌的按键不同,一般就f8,f10,f11,f12,ESC),总之进入BIOS即可,进入之后:键盘的上下左右是控制键,Enter是确定键,f10是保存键
接下来找到 cpu configuration–>Secure Virtual Machine Mode–>选择Enabled 然后确定,最后f10保存,保存后windows会自动退出并开机
是否安装成功
一般来说到这一步docker 就安装成功了
我们键入windows键+r键,输入cmd进入终端,输入docker version 或者docker info 查看,如果有如下提示,则表示docker已经安装成功了
安装成功后,我们开始第一个案例,最简单的hello world!
在终端输入
docker run hello-world
你会看到这个提示,意思是此消息表示你的安装已经成功
docker的镜像与容器:两者的关系就相当于java中的类与实例的关系,也就是模板与实际对象的关系
docker仓库、镜像、容器:
镜像:类似虚拟机镜像
容器:类似linux系统环境,运行和隔离应用。容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变。
仓库:每个仓库存放某一类镜像。
一些简单的命令:
docker version 查看docker的版本信息
docker run 创建一个容器并运行一个命令
docker pull 从docker仓库拉取镜像
docker images 查看镜像列表
docker ps 查看已运行的容器
docker ps -a 查看所有容器(包括未运行的和已运行的)
docker rmi 镜像id 删除镜像(删除镜像前得先删除容器,此处镜像的id不用写全,写出id前边几个字符就行,id主要用于区分)
docker rm 容器id 删除容器
docker start 容器id 运行一个已经停止的容器
docker stop 容器id 停止一个运行的容器
docker exec -it 容器名称/容器id 进入容器 例:docker exec -it 294fb bin/bash
连接国内镜像仓库
点击docker desktop 的设置
选择
添加国内仓库镜像地址 “https://5f2jam6c.mirror.aliyuncs.com”
我这儿使用的是阿里云的镜像
在终端输入:docker info 在最底下的输出中可以看到
问题一:无法启动容器 docker run -d ubuntu
过程:
最开始启用hello-world容器时,用命令docker ps是能看到这个容器在运行的,但后边把这个容器停止,删除,删除镜像后,重新下载了个ubuntu镜像,这个ubuntu镜像的容器却无法启动了,也不报错,也不启动,可以用docker ps -a看出它就是退出状态
问题分析:
在其他地方找到看到了这么一句话:
我们 docker run 启动容器的时候,常需要将其在后台运行,通常我们设置参数 -d 即可。
但后台运行,其实是有前提的,如果没有前台进程,那么实际运行完docker run命令后,会处于退出状态,即exited。
也就是说这个容器其实是启动成功了,但由于没有前台进程,所以在启动的瞬间又关闭了,好似启动了但又没有完全启动~!
解决方法:
它不是要前台进程吗?给它一个前台进程就是
我们把 docker run ubuntu 改成 docker run -itd ubuntu
刚也提到,就是-d运行容器时,需要有前台进程,-t提供一个伪终端,类似前台进程,查看容器运行状态,也可以看到,容器处于up状态。
docker run -itd ubuntu
-i 容器启动后终端返回容器的id
-d 容器启动后在后台运行
-t 提供一个伪终端