WSL2子系统 Ubuntu Docker安装并安装运行nginx
首先下载Linux内核更新包,防止出现各种莫名其妙问题(如版本不兼容):下载链接WSL安装进入Microsoft Store 搜索WSL安装完成后打开,会等待几分钟,然后创建账号密码docker安装方法一:使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun也可以使用国内 daoc
首先下载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放进去就好了
更多推荐
所有评论(0)