admin 管理员组

文章数量: 887021

Windows Docker 安装

docker desktop 、wsl2、wsl1、hyper-v的简单关系

1、wsl1启动前提: windows的子linux功能。 注意只能在win10以及win2019操作系统上启用(有版本要求,早期的可能并不支持,具体参考docs microsoft文档)

2、wsl2启用前提:windows的子linux功能 、hyper-v、微软发布的专用linux内核补丁 注意只能在win10以及win2019操作系统上启用(有版本要求,早期的可能并不支持,具体参考docs microsoft文档)

3、docker desktop:在win10 家庭版只能基于wsl2基础启用支持linux container,所以需要先安装wsl2(windows的子linux功能、hyper-v、微软发布的专用linux内核补丁),然后安装docker desktop,会同步安装windows container feature(但实际只能支持linux container);
在win10 pro或enterprise版本上可以在windows container或linux container之间转换。

安装 Hyper-V

Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。

但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

解决win10或者w11没有Hyper-V

在安装docker时发现需要开启Hyper-V,但是发现没有这个产品(似乎win10家庭中文版都没有~)

1.首先新建一个Hyper-V.txt文件,写入如下代码:

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

2.将后缀名改为cmd,然后以管理员身份运行,然后就开始添加程序包了,大概一分钟,输入y重启计算机。

配置更新重启完成以后,我们去控制面板、所有控制面板项、程序和功能,点击启用或关闭Windows功能,就会发现我们已经有了Hyper-v功能,并勾选windows的子linux功能

确保 BIOS 已开启虚拟化,下图检查是否已开启好

WSL的安装

  • 使用管理员权限打开powershell
  • 启用“适用于 Linux 的 Windows 子系统”可选功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

这时候wsl其实已经启用了,重启就可以了,但还要更新到wsl2,就在后面一起重启了。

升级到WSL2

  • 启用“虚拟机平台”可选组件
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  • 重启电脑。
  • 重新管理员身份打开powershell,用下面的命令将wsl2设置为默认。
wsl --set-default-version 2

使用任一终端,输入以下命令查看 WSL 版本,确保 WSL 的版本为 2.0:

wsl -l -v

出现上面这行就是好了

下载Linux内核更新程序包
  • 适用于 x64 计算机的 WSL2 Linux 内核更新包

安装linux分发版

选择一个你喜欢的就可以了,任君挑选。

  • 打开 Microsoft Store,并选择你偏好的 Linux 分发版。

Ubuntu 16.04 LTS
Ubuntu 18.04 LTS
Ubuntu 20.04 LTS
openSUSE Leap 15.1
SUSE Linux Enterprise Server 12 SP5
SUSE Linux Enterprise Server 15 SP1
Kali Linux
Debian GNU/Linux
Fedora Remix for WSL
Pengwin
Pengwin Enterprise
Alpine WSL
在分发版的页面中,选择“获取”。

初次启动它会进行一个初始化的过程,需要等待一段时间。完成之后会让你设置账号和密码。

安装 Docker Desktop for Windows

点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:

双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 close and start重启电脑完成安装。

安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标,这表示 Docker 正在运行。

安装之后,可以打开 cmd并运行以下命令查看版本号

docker version

运行以下命令检测是否运行成功:

docker run hello-world

在成功运行之后应该会出现以下信息:

设置

General:这里是设置docker开机自启,应用程序启动时检查更新,发布使用情况统计信息

Daemon:Docker for windows10 可以配置阿里云镜像,到https://cr.console.aliyun/ 注册一个账户,登录进去后再列表选择加速器,把你的专属加速器地址复制粘贴到Daemon的Registry mirrors中

“https://mgo8nk1u.mirror.aliyuncs”

安装后选择启用WSL2引擎

这样便可直接在WSL的命令行中使用docker:

演示 Docker 安装 Redis

Redis 官网:https://redis.io/

Docker 官方镜像仓库查找 Redis :https://hub.docker/

一个命令跑起来:docker run -d -p 6379:6379 --name redis redis:latest

执行完成后多了一个镜像和容器

CentOS安装Docker

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。

卸载(可选)

Install Docker Engine on CentOS | 官方教学

CentOS Docker 安装 | 菜鸟教程 (runoob)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装docker

安装需要的软件包, yum-util提供yum- config-managerr功能,另外两个是 devicemapper区动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken

然后更新本地镜像源:

# 设置阿里云docker镜像源
yum-config-manager --add-repo https://mirrors.aliyun/docker-ce/linux/centos/docker-ce.repo
#清华大学源 
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

然后输入命令:安装最新版本的 Docker Engine-Community 和 containerd

yum install docker-ce docker-ce-cli containerd.io

docker-ce社区ee企业版。稍等片刻,docker即可安装成功。

启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

启动docker前,一定要关闭防火墙后!!

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

然后输入命令,可以查看docker版本:如果有信息则说明启动成功

docker -v

如图:

通过运行hello-world镜像来验证Docker引擎是否正确安装。

docker run hello-world

查看下载的hello-word镜像

docker images

了解一下卸载docker的命令:

卸载Docker Engine、CLI和Containerd包:

yum remove docker-ce docker-ce-cli containerd.io
~~~sh

删除所有映像、容器和卷:

~~~sh
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:容器镜像服务 (aliyun)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mgo8nk1u.mirror.aliyuncs"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

第一步:创建文件夹

sudo mkdir -p /etc/docker
~~~sh

第二步:编写配置文件

~~~sh
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mgo8nk1u.mirror.aliyuncs"]
}
EOF

第三步:重新加载

sudo systemctl daemon-reload

第四步:

sudo systemctl restart docker

完成

回顾HelloWorld流程

底层原理

Docker是怎么工作的?

Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访
问!

Docker-Server接收到Docker-Client的指令,就会执行这个命令!

CentOS7安装DockerCompose

方式一:官网教学

官网教程

Linux下需要通过命令下载:

curl -L "https://github/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

将可执行权限应用于二进制文件:

chmod +x /usr/local/bin/docker-compose

测试安装

docker-compose --version

方式二:通过pip进行安装

安装pip

#安装epel扩展源
yum -y install epel-release
#然后再安装pip
yum -y install python-pip

查看版本

pip --version

CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级

查看Python版本号

python -V

下载新版本python

wget https://www.python/ftp/python/3.9.7/Python-3.9.7.tgz

下载完成之后,进行解压缩:

tar -zxvf Python-3.9.7.tgz

进入解压缩后的目录,安装配置:

cd Python-3.9.7/
./configure 

配置完成之后,就可以编译了:

make 

漫长的等待……完成后,安装:

make install 

验证

# python -V
Python 2.7.5
# python3 -V
Python 3.9.7

设置 3.x 为默认版本

查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.7,所以,执行 python 就相当于执行 python 2.7

ls -al /usr/bin | grep python

将原来 python 的软链接重命名:

mv /usr/bin/python /usr/bin/python.bak

将 python 链接至 python3:

ln -s /usr/local/bin/python3 /usr/bin/python

这时,再查看 Python 的版本:

python -V

配置 yum

升级 Python 之后,由于将默认的 python 指向了 python3,yum 不能正常使用,需要编辑 yum 的配置文件:

vi /usr/bin/yum  

#!/usr/bin/python    改成:    #!/usr/bin/python2.7

vi /usr/libexec/urlgrabber-ext-down  

#!/usr/bin/python    改成:    #!/usr/bin/python2.7

升级yum:

yum update 

更新pip

pip3 install --upgrade pip

查看版本号

pip --version

安装docker-compose

pip install docker-compose 

查看docker compose的版本

docker-compose version

本文标签: 服务器 compose docker