docker实用教程 window启动失败原因 小鱼儿 2022-12-29 09:09 128阅读 0赞 # Docker概述 # docker 是用来解决环境配置复杂的问题,环境不兼容问题,方便运维 打包镜像发布测试 一键运维 # Docker安装 # [https://www.runoob.com/docker/docker-install-ubuntu.html][https_www.runoob.com_docker_docker-install-ubuntu.html] ## 安装启动失败原因 ## 1. window没有Hyper-V 可以建立 文件名.cmd 吧下面的内容粘贴进去运行之后就有了 到最后会输入 y 会重启所以要提前保存好文件 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" del hyper-v.txt Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL 1. wsl 版本太低 > 如果docker无法启动 需要更新一下 wsl > 更新 wsl [下载][Link 1] 1. 下面报错运行如下命令 管理员身份打开cmd > netsh winsock reset ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70] ## 镜像 image ## 镜像就可以理解为模板 拿来就可以用 ## 容器 container ## 就是一个独立的系统 里面包含自己项目内容 或者其他的环境配置 比如mysql ## 仓库repository ## 下载镜像的地址 国内多用阿里巴巴的地址 修改如下图所示 修改完重启docker 避免不生效 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 1] { "registry-mirrors": ["https://xaiqlt1z.mirror.aliyuncs.com"], "insecure-registries": [], "debug": false, "experimental": false, "features": { "buildkit": true } } # Docker命令 # docker version docker info #显示docker系统信息 docker 命令 --help # 帮助命令 ## 镜像命令 ## ### docker images ### * \-a 查看所有的镜像 1. repository 镜像仓库源 2. tag 镜像标签 3. imace id 镜像id 4. created 创建时间 5. size 镜像大小 ![在这里插入图片描述][2020122122272496.png] * 可选 1. \-a 可选参数 全部镜像 2. \-q 只显示镜像id ### docker search 搜搜镜像 ### 在这里插入图片描述 ![在这里插入图片描述][20201221223343101.png] #可选参数 -f 过滤 -f=STARS ![在这里插入图片描述][20201221223659516.png] ### docker pull 下载 ### Options: -a, --all-tags 下载全部 Download all tagged images in the repository --disable-content-trust Skip image verification (default true) --platform string Set platform if server is multi-platform capable -q, --quiet Suppress verbose output 不输出下载进度 下载指定版本 docker pull mysql:5.7.30 ### docker rmi 删除镜像 ### docker rmi -f id号 删除一个 docker rmi -f id号 删除多个 docker rmi -f $(docker images -aq) 删除全部 ## 容器命令 ## docker pull centos ### 新建容器启动 ### docker run [可选参数] image # 参数容器 --name="name" 容器名字 用来区分容器 -d 后台方式运行 -it 使用交互方式运行 进入容器的意思 -p 指定端口 主机端口:容器端口 容器端口不向外映射 -P 随即指用端口 > docker run -it centos > 运行centos 进入容器 PS D:\工作> docker run -it centos [root@93e860bd4082 /]# 推出命令 exit ### 列出所有运行的命令 ### docker ps -a 现实所有运行的容器 -n=?# 显示最近运行的容器 ? 显示数量 -q #只显示容器编号 ### 推出容器 ### exit #推出并且停止 ctrl +p +q #不停止推出 ### 删除容器 ### docker rm 容器id ### 启动和停止容器的操作 ### docker start id docker restart id docker stop id docker kill id ## 常用命令 ## 后台启动容器 ,后台运行必须有前台进程不然就会退出 # -d 容器名 docker run -d centos 查看日志 docker logs 3815a5f8e694 查看容器进程信息 docker top 3815a5f8e694 查看容器信息 docker inspect 3815a5f8e694 进入容器 # 打开新的 界面 docker exec -it 容器id # 打开当前界面 docker attach 3815a5f8e694 复制容器内文件到主机 docker cp 容器id:容器内路径 目的的主机路径· 查看容器占主机使用情况 docker stats 容器id ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 2]\#\#\# 整合练习 **安装nginx** 1. 搜索镜像 docker search 镜像名 2. 下载镜像 docker pull 镜像名 3. 启动镜像 > 启动nginx -d 后台运行 名字是 nginxweb 主机端口3001映射到容器的80 端口 镜像名 > docker run -d --name nginxweb -p 3001:80 nginx > ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 3] **安装elasticsearch** docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 访问 127.0.0.1:9200 { "name" : "6a4d8d24d52d", "cluster_name" : "docker-cluster", "cluster_uuid" : "dNR04oCXSgejUxTAbW1_iQ", "version" : { "number" : "7.6.2", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f", "build_date" : "2020-03-26T06:34:37.794943Z", "build_snapshot" : false, "lucene_version" : "8.4.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 4] ### commit镜像 提交镜像 ### docker commit # 提交容器成为一个新副本 docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag版本] docker commit -a="llt" -m="初始化html" f32c7e68c569 tomcatllt:1.0 ![在这里插入图片描述][20201224162905217.png] # 容器数据卷 # ## 使用数据卷 ## 1. 直接使用命令挂载 -v docker run -it -v 主机目录:容器目录 docker run -it -v D:\phpstudy_pro\home:/home centos /bin/bash ## 实战mysql ## # -d 后台运行 -p 端口映射 -v 文件映射可以多个-v -e环境配置 这里配置密码 docker run -d -p 3310:3306 -v D:\phpstudy_pro\mysql\conf:/etc/mysql/conf.d -v D:\phpstudy_pro\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7 ## 具名挂载与匿名挂载 ## # 具名挂载 docker run -d -p 3301:80 --name nginx2 -v nginx2llt:/etc/nginx nginx [ { "CreatedAt": "2020-12-24T09:38:55Z", "Driver": "local", "Labels": null, # 挂载的主机地址 "Mountpoint": "/var/lib/docker/volumes/nginx2llt/_data", "Name": "nginx2llt", "Options": null, "Scope": "local" } ] # 匿名挂载 docker run -d -p 3301:80 --name nginx2 -v /etc/nginx nginx # DockerFile # **体验** 写一个脚本通过脚本可以生成镜像 FROM centos # 挂载文件 这是匿名挂载 VOLUME ["volume01","volume02"] CMD echo "------end------" CMD /bin/bash **打包** docker build -f F:\myProject\initWeb\dist_electron\dockertext01\dockerfile01 -t llt/centos:1.0 . ## 数据卷容器 ## 容器同步卷 数据共享参数 --volumes-from #运行 dockervolume03 与 CONTAINER ID是 19bf91bd4809 共享数据卷 docker run --name dockervolume03 --volumes-from 19bf91bd4809 -it 18f677c53652 /bin/bash mysql 数据同步 docker run -d -p 3310:3306 -v D:\phpstudy_pro\mysql\conf:/etc/mysql/conf.d -v D:\phpstudy_pro\mysql\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7 --name mysql01 docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql:5.7 --volumes-from mysql01 **dockerfile** 是用来构建docker镜像的文件 1. 编写dockerfile 2. docker build 构建成镜像 3. docker run 运行镜像 4. docker push 发布镜像 dockerhub 阿里云镜像仓库 **dockerfile指令** from 基础镜像 maintainer 维护者信息 姓名+邮箱 run 运行 add copy文件 会自动解压 例如tomcat 添加tomcat 压缩包 workdir 设置工作目录 volume 设置卷 expose 指定对外端口 run 运行 cmd #这个容器启动要执行的命令 只有最后一个会生效 可被替代 entrypoint #这个容器启动要执行的命令 onbuild #当构建一个被继承 dockerfile copy # 类似add env #设置构建环境变量 **创建自己的centos** #编写 dockerfile 文件 FROM centos #基础centos MAINTAINER llt<229236940@qq.com> #作者信息 ENV MYPATH /usr/local #初始化路径 WORKDIR $MYPATH #工作目录 RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD echo $MYPATH CMD echo "--------end------" CMD /bin/bash #构建镜像 docker build docker build -f ./mydockerfile-centos -t mycentos:0.1 . > ENV MYPATH /usr/local \#初始化路径 这里对应下面截图 ![在这里插入图片描述][20201225214558316.png] > 查看历史构建步骤 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 5] > cmd 和 entrypoint 区别 cmd #这个容器启动要执行的命令 只有最后一个会生效 可被替代 cmd 无法在 docker run -it a64ca6f63548 后面添加命令 entrypoint #这个容器启动要执行的命令 entrypoint 可以 docker run -it a64ca6f63548 后面添加命令 docker run -it a64ca6f63548 **创建tomcat** FROM centos MAINTAINER llt<229236940@qq.com> COPY readme.txt /usr/local/readme.txt ADD apache-tomcat-9.0.41-src.tar.gz /usr/local/ ADD jdk-8u60-linux-x64.tar.gz /usr/local/ RUN yum -y install vim ENV MYPATH /usr/local WORKDIR $MYPATH ENV JAVA_HOME /usr/local/jdk1.8.0_60 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.41-src ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.41-src ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin EXPOSE 8080 CMD /usr/local/apache-tomcat-9.0.41-src/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.41-src/bin/logs/catalina.out #构建 docker build -t diytomcat02 . #运行 docker run -d -p 9090:8080 --name llttom -v F:\办公公司\work\dockerDemo\llt_tomcat\test:/usr/local/apache-tomcat-9.0.22/webapps/test -v F:\办公公司\work\dockerDemo\llt_tomcat\logs\:/usr/local/apache-tomcat-9.0.22/logs 18ec45d4a585 # Docker网络原理 # link指令不建议使用这里就不给例子了 因为连接有坑 **创建网络** #创建名为lltnet的网络 -d 选择网络类型 bridge桥连接 docker network create -d bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 lltnet #查看网络 信息 docker network inspect lltnet #查看所有网络 docker network ls #运行创建tomcat镜像 选择网络 lltnet 这样子创建的docker在同网段可以连接 docker run -d -P --name tomcatnet01 --net lltnet tomcat **修改docker网段** > 环境如下 俩自定义网段 俩默认网段 要求默认网段连接自定义网段 PS F:\办公公司\work\dockerDemo\dockerfile> docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4cb4a5fd971a tomcat "catalina.sh run" 22 minutes ago Exited (255) 9 minutes ago 0.0.0.0:49156->8080/tcp tomcatnet02 a8cfa995ecad tomcat "catalina.sh run" 22 minutes ago Exited (255) 9 minutes ago 0.0.0.0:49155->8080/tcp tomcatnet01 PS F:\办公公司\work\dockerDemo\dockerfile> docker run -d -P --name tomcatnet1 tomcat 5d5737430ce07d0f5a922d5864365623e0d9ce92cf6478c8afa4554f4ba88221 PS F:\办公公司\work\dockerDemo\dockerfile> docker run -d -P --name tomcatnet2 tomcat 61f1904e369855a6b50bf8576f3d0a48b1150d48e02710c28afd9e5a083535c7 PS F:\办公公司\work\dockerDemo\dockerfile> > 给tomcatnet1 添加到 lltnet 网络 docker network connect lltnet tomcatnet1 # IDEA整合Docker # # Docker Compose # # Docker Swarm # # CI\\CD jenkins # [https_www.runoob.com_docker_docker-install-ubuntu.html]: https://www.runoob.com/docker/docker-install-ubuntu.html [Link 1]: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70]: /images/20221120/8ba0c9e6004a4c0491e2a92eee59538a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 1]: /images/20221120/67da7c8653c24e2c8b96739d5adc1cd4.png [2020122122272496.png]: /images/20221120/f719aeeb38954d869adff838520dc1e6.png [20201221223343101.png]: /images/20221120/afd51c1b12104d1788b479700b6a7481.png [20201221223659516.png]: /images/20221120/a73bcec1c5804a4a8b50669d6b61863f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 2]: /images/20221120/ffdee574d52942b0b2f447e8287874bd.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 3]: /images/20221120/47e70034cbb6443f89869f9d0ff9ced1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 4]: /images/20221120/f1b62b680f1940b2ba147040fac4b18c.png [20201224162905217.png]: /images/20221120/02a15d5f870a48969182eb8b2aca496c.png [20201225214558316.png]: /images/20221120/c0dbc9f9cf3144778f87555b19ebb27b.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0JMVUVTS1lIT1NU_size_16_color_FFFFFF_t_70 5]: /images/20221120/128810baeff24bf5a6e4bc2d549790fd.png
相关 详解:Java项目启动失败的原因 Java项目启动失败可能有以下几个原因: 1. **环境配置问题**: - 操作系统不兼容:Java通常在Windows、Linux和macOS上运行,但如果操作系统版 喜欢ヅ旅行/ 2024年09月10日 18:30/ 0 赞/ 10 阅读
相关 docker实用教程 window启动失败原因 Docker概述 docker 是用来解决环境配置复杂的问题,环境不兼容问题,方便运维 打包镜像发布测试 一键运维 Docker安装 [https://www 小鱼儿/ 2022年12月29日 09:09/ 0 赞/ 129 阅读
相关 docker启动失败 文章目录 1、我们使用命令: 2、解决方法, 1、我们使用命令: systemctl status docker.service 查看报错信 素颜马尾好姑娘i/ 2022年10月20日 05:28/ 0 赞/ 198 阅读
相关 Docker启动失败的处理 为体验Docker新版本,从1.11升级至1.12。 升级docker程序最好是先把docke进程停止运行,如果在docker进程在运行中升级版本,就会出现docker启动 青旅半醒/ 2022年09月25日 02:20/ 0 赞/ 199 阅读
相关 docker启动失败 > 使用docker时报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the 电玩女神/ 2022年09月15日 11:48/ 0 赞/ 221 阅读
相关 solr启动失败404的原因 我复制了官方文档下面的solr实例 放到 webapps目录下 ![这里写图片描述][SouthEast] -------------------- 更改端口后启动,发现 妖狐艹你老母/ 2022年06月14日 06:06/ 0 赞/ 364 阅读
相关 docker启动失败问题 在centos7上面在线安装完毕docker启动的使用有时候经常碰到如下问题: [root@localhost ~] service docker restart 素颜马尾好姑娘i/ 2022年05月16日 15:58/ 0 赞/ 281 阅读
相关 docker启动失败 安装docker后启动失败 错误信息 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_ 谁借莪1个温暖的怀抱¢/ 2022年04月17日 01:12/ 0 赞/ 245 阅读
相关 Docker启动失败的处理 为体验Docker新版本,从1.11升级至1.12。 升级docker程序最好是先把docke进程停止运行,如果在docker进程在运行中升级版本,就会出现docker启动 旧城等待,/ 2022年01月22日 23:13/ 0 赞/ 447 阅读
还没有评论,来说两句吧...