首先下载Linux内核更新包,防止出现各种莫名其妙问题(如版本不兼容):下载链接

打开控制面板->启用或关闭windows功能,勾选一下“适用Linux的Windows子系统”选项
在这里插入图片描述

WSL安装

进入Microsoft Store 搜索WSL
在这里插入图片描述
在这里插入图片描述
安装完成后打开,会等待几分钟,然后创建账号密码

docker安装

方法一:使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

方法二:手动安装

1.更换镜像源

备份默认源:

cp /etc/apt/sources.list /etc/apt/sourses.list.bak

编辑文件:

vim /etc/apt/sources.list

删除原有内容并替换为:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新源:

apt-get update
apt-get upgrade
2.Docker安装

卸载旧版本(如果有):

apt-get remove docker docker-engine docker.io containerd runc

设置存储库:
安装软件包以允许 apt 通过 HTTPS 使用存储库

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

设置稳定的存储库

add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

更新 apt 包索引

apt-get update

安装docker和脚手架

apt-get install docker-ce docker-ce-cli containerd.io

查看是否安装成功:

docker --version
# 启动docker
service docker start

使用docker命令不加sudo操作,执行如下命令:

sudo gpasswd -a 你的用户名 docker

安装并运行nginx

创建目录(目的是和nginx的目录映射)

mkdir -p /data/docker/nginx
cd /data/docker/nginx/
mkdir conf
mkdir logs
mkdir www

docker 运行nginx

docker run -d -p 8081:80 --name nginx --net bridge -v /data/docker/nginx/www:/usr/share/nginx/html -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/logs:/var/log/nginx nginx

命令解释:

-d 设置容器在后台一直运行
-p 8081:80 端口进行映射 将本地8081端口映射到容器内部的80端口
--name nginx 设置容器名称
--net bridge  指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
-v 绑定一个卷,映射容器内部目录到本地

此时会报出错误

docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:424: container init caused “rootfs_linux.go:58: mounting “/data/docker/nginx/conf/nginx.conf” to rootfs “/var/lib/docker/overlay2/73ad6cfead8c2d9c1d25469cccff7d86029ce6308a83416b2ef08464c8c5f76f/merged” at “/var/lib/docker/overlay2/73ad6cfead8c2d9c1d25469cccff7d86029ce6308a83416b2ef08464c8c5f76f/merged/etc/nginx/nginx.conf” caused “not a directory”””: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

原因是我们的conf中没有配置文件
可以按照如下步骤操作:

第一步:docker run -d -p 8081:80 --name nginx --net bridge -v /data/docker/nginx/www:/usr/share/nginx/html -v /data/docker/nginx/logs:/var/log/nginx nginx
第二步:docker exec -it nginx /bin/bash (进入容器 获取文件)
第三步:cd /etc/nginx/ (这里主要获取配置文件路径的)
第四步:exit
第五步:cd /data/docker/nginx/conf/
第六步:docker cp cad344a2a306:/etc/nginx/nginx.conf .
ps:文件copy成功后 把nginx容器先删除掉
第七步:docker rm -f nginx
第八步:docker run -d -p 8081:80 --name nginx --net bridge -v /data/docker/nginx/www:/usr/share/nginx/html -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/logs:/var/log/nginx nginx

启动正常
PS:访问可能会403 因为/docker/nginx/www/ 里面没有index.html放进去就好了

Logo

更多推荐