Win10使用Docker安装Centos
下载Docker
https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe
Docker对Win系统是有要求的,必须是专业版,企业版或教育版(内部版本16299或更高版本);因为家庭版并没有安装Hyper-V。
如果你的Win系统是家庭版,请参考:
https://docs.docker.com/docker-for-windows/install-windows-home
安装Docker
双击运行Docker Desktop Installer.exe,界面上有2个选项:
Enable Hyper-V Windows Features (配置Hyper-V虚拟机,必选) Add Shortcut to desktop(在桌面上安装图标,可选)
安装直接默认选择,点击OK
安装成功之后,点击Close关闭。
有的小伙伴可能是第一次配置Hyper-V,所以需要重启电脑。
最新的windows版本不再使用Hyper-V,而是使用wsl2,详细信息请查看链接:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
运行Docker
双击打开桌面上的Docker Desktop,等待Docker图标从Docker is starting变成Docker is running。
修改Docker镜像源,右击Docker图标,选择Settings。
如果你不想Docker在开机的时候启动,选中General选项,取消”Start Docker Desktop when you log in”的选中状态。
选中Docker Engine选项,修改其中的的registry-mirrors,增加2个国内的镜像源:
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn"
],
修改完成之后,需要点击界面右下角的”Apply & Restart”按钮。
获取Centos镜像
打开命令提示符,可以通过快捷键Win+R,输入cmd回车即可。
在打开的命令提示符中,输入下面的命令可以查看centos所有的镜像:
docker search centos
可以看到命令会返回很多的镜像,其中OFFICIAL一栏中如果有[OK]标签的,就表示这是官方提供的镜像:
我们可以通过NAME下载对应的镜像文件:
docker pull centos
这下载的是centos最新版本,如果想下载其他版本,可以通过指定版本号:
docker pull centos:7.6.1810
镜像的版本号可以在https://hub.docker.com/_/centos中查看
等待下载完成之后,可以用image命令查看所以本地镜像:
docker image ls -a
运行容器
镜像下载之后,可以通过run命令运行容器
docker run -p 8922:22 -p 8936:3306 –privileged -td centos:latest /usr/sbin/init
-p 8922:22的意思就是把本地的8922端口映射成centos上的22端口。
–privileged的意思是使容器内的root拥有真正的root权限,否则容器内的root只是外部的一个普通用户权限;privileged启动的容器,可以看到很多host上的设备,并且可以执行mount;甚至允许你在docker容器中启动docker容器。
-td的意思是使容器成为一个后台服务。
centos:latest是REPOSITORY:TAG:
/usr/sbin/init是容器启动的时候使用的命令。
管理容器
可以通过ps命令查看所有的窗口:
docker ps -a
这里的CONTAINER ID很重要,后续对应容器的操作都需要通过容器ID。
进入容器可以使用命令exec:
docker exec -it 容器ID /bin/bash
进入容器之后,需要安装openssh-server来使用sshd:
yum install openssh-server passwd
systemctl start sshd
开启sshd之后,就可以通过XShell等客户端工具登录了。
容器启动之后,可以通过stop命令关闭:
docker stop 容器ID
可以通过start命令启动:
docker start 容器ID
删除使用rm命令:
docker rm 容器ID
rm命令也可以用来删除对应的镜像,如果要删除镜像,需要先把镜像对应的容器全部删掉之后,才可以删除镜像。
docker image rm 镜像ID
容器的导入导出
docker有很多优点,其中之一就是可以通过导入导出功能,实现环境的迁移。
想想平时我们为了搭建一个本地的开发环境,需要安装各种开发包,要写各种配置文件;等到了发布的时候,又要在服务器上搭建一套同样的环境,想一想就痛苦,而docker为我们完美的解决了这个问题。
通过export命令导出:
docker export 容器ID > you_name.tar
导出包之后可以直接上传到服务器上,通过import命令导入docker中:
docker import you_name.tar REPOSITORY:TAG
这里的REPOSITORY:TAG你可以自定义,例如定义成centos:wqh,这样就可以在docker run的时候直接使用centos:wqh。
导入成功之后,你就可以在image中看到你的镜像,之后就可以直接run起来了:
docker run -p 8922:22 -p 8936:3306 --privileged -td centos:wqh /usr/sbin/init