云原生 | Docker 实战

云原生 | Docker 实战

拉取MySQL过程

  1. 拉取镜像 docker pull mysql

  2. docker images查看是否成功

  3. docker run -d <镜像名> -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql -v /var/lib/mysql:/var/lib/mysql --name <name> 启动容器

  4. docker run --name robking_mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d -p 3306:3306 mysql

    --name mysql 
    表示将这个容器命名为mysql
    
    -v /var/lib/mysql:/var/lib/mysql 
    表示将宿主机的 /var/lib/mysql 卷映射到容器里的 /var/lib/mysql 卷中,这里是为了我们能够把这个数据保存在宿主机中,防止容器删掉就没了。
    
    -e MYSQL_ROOT_PASSWORD=root 
    表示MySQL的密码这里设置了root密码是 123456
    
    -e MYSQL_ALLOW_EMPTY_PASSWORD=yes
    设置为无密码
    
    -p 3306:3306
    将宿主机的3306端口映射到容器的3306端口
    
    -d 
    后台运行
    
    mysql:8.0 
    使用mysql:8.0这个镜像
    
  5. docker ps查看启动是否成功

  6. docker exec -it robking_mysql /bin/bash 在宿主机上进入容器,登录守护式容器

  7. mysql -u root -p登录mysql

    image-20230513171010653

  8. 查看mysql版本

    -- 第一种
    select version();
    --第二种
    select @@version; 
    
  9. 获取mysql 容器的ip地址

    docker inspect robking_mysql | grep IPAddress
    

    image-20230513172024194

Docker部署Gin+MySQL+Redis项目

MySQL

  1. docker pull mysql拉取mysql镜像

  2. docker run --name mysql -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql

    启动mysql容器,具体使用参考上面

Redis

  1. docker pull redis拉取redis镜像

  2. docker run --name redis -v /usr/local/redis:/usr/local/redis -p 6379:6379 -d redis

    启动redis容器,通过 docker ps查看容器正在运行

mall(项目)

  1. 制作项目 Dockerfile

    FROM golang:lasest
    
    ENV GO111MODULE=on \
        GOPROXY=https://goproxy.cn,direct
    
    WORKDIR /app
    COPY . .
    RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build  -ldflags="-w -s" -o main
    RUN mkdir publish  \
        && cp main publish  \
        && cp -r conf publish
    
    # 指定运行时环境变量
    ENV GIN_MODE=release
    EXPOSE 3000
    
    ENTRYPOINT ["./main"]
    
  2. 修改项目的配置文件,这个配置文件里面主要包括

    mysqlip:port; redisip:port; mysql连接信息包括账号密码,使用的数据库

  3. docker build -t mall:1.0 .将我们的项目通过Dockerfile制作成镜像

    此时会去下载golang环境(镜像),编译我们的程序,下载相关的依赖,指定暴露的端口

    成功的标志是每一步都会返回一串id

    image-20230513172248825

  4. docker run --name mall -p 3000:3000 -d mall:1.0运行这个镜像

    在后面加上 --rm将会在容器结束运行时自动删除

    我的理解是相当于我们在本地启动项目

  5. 如果启动失败出现数据库连接失败或者忘记建数据库了那么就需要重新删除项目的镜像改动我们的代码重新通过Dockerfile制作成镜像然后重新运行这个镜像(启动项目)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值