docker是每个程序员都必须学会的技能
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
'''winver'''查看系统版本,如果内部版本号小于19041,需要更新
在powerShell中以管理员身份运行下面命令以确保开启适用于 Linux 的 Windows 子系统和虚拟机平台配置项
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启电脑完成安装, 继续安装内核更新包 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 在powerShell中将 WSL 2 设置为默认版本
wsl --set-default-version 2
wsl --update --web-download
下载docker desktop安装 https://www.docker.com/products/docker-desktop/ windows上使用docker时,需要这软件开着 最后命令行输入
docker --version
显示版本号就是安装成功了
拉取镜像 docker pull nginx
查看镜像 docker images
删除镜像 docker rmi 名字或id
创建并启动容器 docker run 镜像名或者id
在后台创建容器 docker run -d 镜像名或者id
端口映射 docker run -d -p 80:80 nginx
目录映射 docker run -v 宿主机目录:容器内目录 这是为了持久化容器内的数据
注意坑:windows上-v参数宿主机需要用绝对路径,linux才支持相对路径
比如docker run -d -p 80:80 -v C:\web:/usr/share/nginx/html nginx
结合使用
docker run -d -p 80:80 -v C:\Users\Administrator\Desktop\nginx\web:/usr/share/nginx/html -v C:\Users\Administrator\Desktop\nginx\default.conf:/etc/nginx/conf.d/default.conf nginx
优化一下写成bat文件
@echo off
::注释用双冒号,变量用set赋值,用双百分号引用
set www=C:\Users\Administrator\Desktop\nginx\web
docker run -d -p 80:80 -v %www%:/usr/share/nginx/html nginx
docker ps
pause
还可以把配置文件给映射了,方便修改 官方 nginx 镜像中,配置文件默认在容器内的位置: 主配置:/etc/nginx/nginx.conf 默认虚拟主机配置:/etc/nginx/conf.d/default.conf 额外配置目录:/etc/nginx/conf.d/ 把配置文件拷贝到宿主机
docker cp <容器ID或名字>:/etc/nginx/conf.d/default.conf C:\Users\你\Desktop\default.conf
@echo off
set conf=%cd%\default.conf
set www=%cd%\web
echo %conf%
echo %www%
docker run -d -p 80:80 -v %www%:/usr/share/nginx/html -v %conf%:/etc/nginx/conf.d/default.conf nginx
docker ps
pause
当你修改了配置以后,进入容器测试配置,然后 reload:
docker exec -it <容器ID> nginx -t
docker exec -it <容器ID> nginx -s reload
::reload这个命令会让 nginx 平滑加载新的配置,不中断已有连接
::如果你不在意短暂中断,可以直接重启整个容器
::docker restart <容器ID或名字>
运行中的容器 docker ps 删除docker rm -f 名字或id 启动 docker start 名字或id 停止 docker stop 名字或id 查看详细信息docker inspect 名字或id 有的时候需要往容器内传递环境变量,使用-e参数 docker run -d -p 80:80 -v /web:/usr/share/nginx/html -e AAA=3 -e BBB=4 nginx
详细环境变量可以去hub.docker.com查看镜像的描述
docker-ce → Docker Engine
docker-ce-cli → 命令行工具
containerd.io → 容器运行时
docker-buildx-plugin → 支持 Buildx 构建多平台镜像
docker-compose-plugin → Docker Compose V2
### 启动 Docker 并开机自启
systemctl enable --now docker
检查状态
systemctl status docker
常用验证命令
docker --version # 查看 Docker 版本 docker info # 查看 Docker 系统信息 docker ps -a # 查看所有容器 docker images # 查看镜像列表 ```