Windows安装docker

安装Docker Desktop
1、下载安装包
下载地址:https://docs.docker.com/desktop/setup/install/windows-install/
2、下载完成后,双击下载的安装文件(通常是一个.exe文件),然后按照安装向导的指示进行安装。在安装过程中,确保选择了“Start Docker Desktop”选项以便安装完成后自动启动Docker。
3.启动Docker Desktop‌:
安装完成后,打开Docker Desktop。首次启动时,它可能会要求你登录你的Docker Hub账户(如果你有的话),或者你可以选择跳过登录。
4.配置Docker Desktop‌:
Docker Desktop启动后,你可以通过其设置界面来配置一些选项,比如资源分配(CPU、内存、磁盘空间等),以及切换不同的实验性功能等。
5.验证安装‌:
打开命令行工具(如CMD或PowerShell),输入以下命令来验证Docker是否正确安装并运行:
docker --version
如果看到Docker的版本信息,说明Docker已成功安装。

wsl --update 装 适用于 Linux 的 Windows 子系统。
常用的docker命令:

一、基础信息查看
#查看版本
docker -v
docker version
#查看整体信息(镜像、容器、存储驱动)
docker info
#查看本地所有镜像
docker images
#查看运行中容器
docker ps
#查看全部容器(含已停止)
docker ps -a

二、镜像操作(打包 Java 项目核心)
#拉取镜像(jdk、jenkins、mysql等)
docker pull openjdk:11
根据Dockerfile构建镜像
docker build -t java-demo:1.0 .
给镜像打新标签
docker tag java-demo:1.0 localhost:5000/java-demo:1.0
删除镜像
docker rmi 镜像ID/镜像名
批量删除无用虚悬镜像
docker image prune
导出/导入镜像(离线使用)
docker save -o demo.tar java-demo:1.0
docker load -i demo.tar

三、容器启停(日常最多)
#创建并启动容器(最常用,示例jenkins)
docker run -d -p 8080:8080 --name jenkins-server jenkinsci/blueocean
#参数说明
#-d 后台运行;-p 端口映射;–name 指定容器名;-v 数据挂载
进入运行中容器终端
docker exec -it jenkins-server bash
启动/停止/重启容器
docker start 容器名/ID
docker stop 容器名/ID
docker restart 容器名/ID
删除已停止容器
docker rm 容器ID/容器名
强制删除运行容器
docker rm -f 容器名
#查看容器实时日志(Java项目排错必备)
docker logs -f 容器名
查看容器资源占用(CPU/内存)
docker stats

四、数据挂载与文件拷贝
#容器文件复制到本地
docker cp 容器名:/app/target/demo.jar D:/code/
本地文件传到容器
docker cp D:/demo.jar 容器名:/app/
#清理所有停止容器、无用镜像、卷
docker system prune -a

五、私有仓库 & 网络(CI/CD 流水线用)
#启动本地私有镜像仓库
docker run -d -p 5000:5000 --name registry registry
推送镜像到本地仓库
docker push localhost:5000/java-demo:1.0
查看本地仓库镜像
curl http://localhost:5000/v2/_catalog
#查看docker网络
docker network ls

六、Java 项目实战成套命令(直接复制练习)
打包镜像
docker build -t springboot-demo:1.0 .
启动服务容器
docker run -d -p 8090:8080 --name demo-app springboot-demo:1.0
实时看项目日志排查报错
docker logs -f demo-app
进入容器调试
docker exec -it demo-app bash
七、高频清理命令(Windows 磁盘容易占满)
删除所有停止的容器
docker container prune
#删除所有无用镜像
docker image prune -a
#一键清理全部闲置资源(谨慎)
docker system prune -a --volumes

docker常用命令及示列:
docker ps 查看运行容器列表
docker ps -a 查看所有容器
docker run 容器运行
docker images 查看镜像列表
docker logs 查看容器日志
docker logs -f -t --tail=100 容器名称|容器id
docker exec 进入容器内部
docker exec -it 容器名称 bash
docker stats 查看容器状态
docker top 查看容器运行进程
docker rm 容器删除
docker rmi 镜像删除
docker start 容器启动
docker stop 容器暂停
docker restart 容器重新启动
docker commit–> 容器转镜像
docker built—>Dockerfile
docker load 加载
docker save 保存
docker cp 容器名:容器路径 目标路径

宿主机3307–3306容器机端口
宿主机3308–3306容器机端口
宿主机3309–3306容器机端口

常用docker-开发相关命令集
docker logs
docker exec
docker ps
docker stats
docker top
docker restart

-d 后台运行的意思

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

-p 指定端口映射

-v 挂载文件,本地:docker绝对路径

bash -c ‘’ 执行脚本命令

示列:
docker run -d -p 8086:8086 -v /var/www/java:/var
-v /var/www/java/huate/logs/user:/huate/logs/user
-v /var/www/java/huate/image:/huate/image
–name HuaTeUser java8 bash -c ‘java -jar /var/HuaTeUser-20200430-1240.jar --spring.profiles.active=prod’

Dockerfile内容:
FROM:指定基础镜像,必须为第一个命令
格式:
  FROM
  FROM :
  FROM @
示例:
  FROM mysql:5.6
注:
  tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像

MAINTAINER: 维护者信息
	格式:
		MAINTAINER <name>
	示例:
		MAINTAINER Jasper Xu
		MAINTAINER sorex@163.com
		MAINTAINER Jasper Xu <sorex@163.com>
		
RUN:构建镜像时执行的命令
	RUN用于在镜像容器中执行命令,其有以下两种命令执行方式:
	shell执行
	格式:
		RUN <command>
	exec执行
	格式:
		RUN ["executable", "param1", "param2"]
	示例:
		RUN ["executable", "param1", "param2"]
		RUN apk update
		RUN ["/etc/execfile", "arg1", "arg1"]
	注:
	  RUN指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以在构建时指定--no-cache参数,如:docker build --no-cache

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
	格式:
		ADD <src>... <dest>
		ADD ["<src>",... "<dest>"] 用于支持包含空格的路径
	示例:
		ADD hom* /mydir/          # 添加所有以"hom"开头的文件
		ADD hom?.txt /mydir/      # ? 替代一个单字符,例如:"home.txt"
		ADD test relativeDir/     # 添加 "test" 到 `WORKDIR`/relativeDir/
		ADD test /absoluteDir/    # 添加 "test" 到 /absoluteDir/

COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

CMD:构建容器后调用,也就是在容器启动时才进行调用。
	格式:
		CMD ["executable","param1","param2"] (执行可执行文件,优先)
		CMD ["param1","param2"] (设置了ENTRYPOINT,则直接调用ENTRYPOINT添加参数)
		CMD command param1 param2 (执行shell内部命令)
	示例:
		CMD echo "This is a test." | wc -
		CMD ["/usr/bin/wc","--help"]
	注:
	  CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。
	 
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
	格式:
		ENTRYPOINT ["executable", "param1", "param2"] (可执行文件, 优先)
		ENTRYPOINT command param1 param2 (shell内部命令)
	示例:
		FROM ubuntu
		ENTRYPOINT ["top", "-b"]
		CMD ["-c"]
	注:
	   ENTRYPOINT与CMD非常类似,不同的是通过docker run执行的命令不会覆盖ENTRYPOINT,而docker run命令中指定的任何参数,都会被当做参数再次传递给ENTRYPOINT。Dockerfile中只允许有一个ENTRYPOINT命令,多指定时会覆盖前面的设置,而只执行最后的ENTRYPOINT指令。

更多推荐