SSF0SSF0
首页
前端
  • Node
  • Go
  • C#
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
Timeline
Github
标签
分类
首页
前端
  • Node
  • Go
  • C#
  • MySql
  • Bash
  • Git
  • Docker
  • VuePress
  • CI/CD
  • 服务器
  • 网站
  • 学习资料
  • 软件
Timeline
Github
标签
分类
  • Bash

    • Bash 获取路径在不同类型电脑的区别
  • Git

    • Git 使用 ssh 与 https 的区别
    • Git 回滚、重置与变基
    • 文件名大小写发生变化的坑
    • Git 提交信息规范解读与实践指南
    • Git 历史邮箱统一 + 推送 GitHub 后的远程分支处理指南
  • Docker

    • Docker 命令大全
    • nginx 镜像部署静态文件
    • Docker 运行命令说明
    • 使用 node 镜像运行本地项目
    • 挂载和卷的区别
    • Docker 打包多平台镜像
    • Docker 使用 mysql
    • Docker 容器网络访问问题总结
  • VuePress

    • 使用 VuePress 搭建个人博客概括
  • CI/CD

    • blog 使用 Github-Actions 部署 docker 服务器
  • 服务器

    • 腾讯云使用 ssh 连接服务器(Linux 实例)
    • ssl 证书安装到 docker 服务器
    • 操作系统与架构
    • ssh 连接时长问题
  • 掌握 hosts 文件:本地开发、域名重定向与回调处理完全指南
  • Cloudflare DNS与代理:完全指南

Docker 运行命令说明

首先就是可以看官网 翻译一遍 将 Go 镜像作为容器运行 |Docker 文档

大致流程

  1. 可以先查看 Dockerfile 文件的注释看一下解释说明

  2. docker build --tag docker-gs-ping . 根据 Dockerfile 文件生成镜像(----镜像是环境代码的集合-----,也可以是单个环境 比如 node,java,golang)此镜像包含了项目里面的代码以及所需要的环境进行了打包,切记代码改动后 重新打包就为一个新镜像 而老镜像依旧是一切的代码以及环境的集合。

  3. 运行 docker run --publish 8080:6060 docker-gs-ping 命令 把镜像运行到容器里面 一个镜像可以部署到多个容器 (镜像属于一个能独立运行的包,可以运行到多个容器里) --publish(发布)8080 是宿主机端口(电脑端口) , 6060 是 docker 容器开启的端口,docker 运行的端口要保持与代码开启的端口一致 (代码开启的 6060 docker 映射到宿主机的端口应当也为 6060) 这样的话代码开启的端口 6060 就是 docker 开启的 6060 然后映射到宿主机的 8080 端口

    • 我映射的端口随便(不重复就行):docker(容器)端口根据镜像暴露的来(还需要查看代码开启的端口是否和暴露端口一致)
  4. 以上配置后不足以达到 修改代码就会响应的地步 需要重新执行 2 步骤的命令打包镜像 执行 3 运行到容器后 运行新的容器才会响应新的内容

  5. 开发环境 使用 Docker Compose 可以帮助你定义和运行多容器的 Docker 应用。通过一个 docker-compose.yml 文件,你可以定义应用所需的所有服务,并使用简单的命令来启动和管理它们 docker compose up --build 运行这个命令后会根据配置文件的 image: golang:1.19 生成镜像 后面的参数生产容器并且运行 一切生成完毕后第二次运行只需要 docker compose up 更新就可以了

运行 mysql

docker run -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.37 (-p XXXX:XXXX 指定端口,--name XXX 设置容器名称 , -e 添加参数设置 MYSQL_ROOT_PASSWORD=123456 设置密码为 123456 , -d 以后台模式运行容器,mysql:8.0.37 使用镜像:版本,不然默认镜像的 latest 版本)

重要命令

  • docker pull [镜像名称:tag] 拉取镜像

  • docker image remove || rm [镜像名称:tag] 删除镜像

  • docker build -t gogin:cesTag . 构建镜像 -t 代表可以设置 tag 镜像名称必须是小写 不能使用驼峰

  • docker run -p 8088:8088 --name nowGoGin [镜像名称:tag] 构建容器

  • docker remove [容器名称] 删除容器

  • docker ps 查看所有运行容器

  • docker ps -a 查看所有容器

  • docker start [容器名称] 运行容器

  • docker stop [容器名称] 停止容器

  • docker restart [容器名称] 重新运行容器

环境运行宿主机

打包为镜像的问题

mos 打包的镜像上 arm64 的 而运行在服务器需要 amd64 的,

这时候就要构建一个两个都支持的镜像 docker Buildx 是一个推荐的解决方案

image-20240706230733964

image-20240711221041144

上传镜像问题

常规上传 docke hub

  1. 在镜像里面 创建一个 tag 镜像 格式满足 push
    docker tag 镜像名称:tag 账户名称/新建的容器名称:dev //这一步相当于在原本镜像里准备一份满足 push 的格式准备上传。

    image-20240706231648676

​ docker push 账户名称/新建的容器名称:tag
​ 当然也不可以构建的时候直接 push 不留本机镜像 直接构建 push 上去 ​ docker buildx build --platform linux/amd64,linux/arm64 -t 账户名称/新建的容器名称:tag -- push .

服务器拉取问题

docker login 登录的时候因为是 GitHub 登录 所以登录 docker 用户名(不能是 GitHub 的邮箱)时 需要在 docker 官网先使用 GitHub 登录 点击个人信息 点击 security 新增一个 New Access token 这时候会生成一个 用户名对应的密码 此密码只会显示一次

docker pull 用户名/镜像名称:tag

最后更新时间:
贡献者: 何风顺
上一页
nginx 镜像部署静态文件
下一页
使用 node 镜像运行本地项目