首先下载Linux内核更新包,防止出现各种莫名其妙问题(如版本不兼容):下载链接
打开控制面板->启用或关闭windows功能,勾选一下“虚拟机平台”选项(有的电脑可能是英文)和“适用Linux的Windows子系统”选项
进入Microsoft Store 搜索WSL
安装完成后打开,会等待几分钟,然后创建账号密码
安装命令如下:
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 upgrade2.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放进去就好了



