第一次接触Docker是15年夏天,那时候在七牛学习Go语言,周围的大牛们突然提到Docker容器这个东西,而且非常火爆~直到一年多后才想起来要学习一下Docker到底是个什么东西(我真是怠惰啊),废话不多说,开始正文。
配置Hyper-V环境并安装Docker
Windows下,Docker用到了Hyper-V虚拟化技术,Hyper-V是微软的一款虚拟化产品,是微软第一个采用类似Vmware和Citrix开源Xen一样的基于hypervisor的技术。
首先要做的事情就是打开Hyper-V了,打开控制面板->卸载或更改程序,之后如图
注意:Hyper-V服务和VMWare不兼容,两者只能在同一时间使用其中一个。如果要用VMWare需要关掉Hyper-V服务。
开启服务之后重启计算机。然后下载安装包并按照步骤安装
https://download.docker.com/win/stable/InstallDocker.msi
重启一下,应该就可以使用了
这里有一点想吐槽一下,楼主第一次开启Hyper-V是失败的,寻找了很多解决方案都无果,最后只好通过重装系统解决了
检查Docker安装情况
如果安装成功的话,按下Win
键输入PowerShell
打开PowerShell(一个比cmd功能更强大的微软终端)
输入以下命令并按下回车:
docker info
会显示出当前Docker的各种详细信息
PS E:\> docker info
Containers: 17
Running: 1
Paused: 0
Stopped: 16
Images: 6
Server Version: 1.12.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 54
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null overlay host bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.15-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 3.855 GiB
Name: moby
ID: 6HOV:JYTC:3MOP:HDPD:IYWQ:NN3V:EDMO:E2UR:YXUW:VJJU:C24A:STOM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
127.0.0.0/8
docker version
会显示出当前Docker的版本信息
PS E:\> docker version
Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: windows/amd64
Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: linux/amd64
docker ps
会显示出当前Docker运行中的容器(当然现在什么都木有)
PS E:\> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
运行第一个Docker程序
接下来才是好玩的部分 输入
docker run -it ubuntu bash
这是一条运行Ubuntu bash的命令!docker首先会检查你的本地文件中是否有运行上面这个指令需要的所有必要文件,如果没有或者不够齐全的话docker会自动帮你下载。
等待下载完毕之后:
root@8aaf5cc0c43a:/#
发现我们已经成功进入了bash 接下来可以尝试随便输入一些命令
root@8aaf5cc0c43a:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var