云原生 | Docker 实战
拉取MySQL过程
-
拉取镜像
docker pull mysql
-
docker images
查看是否成功 -
docker run -d <镜像名> -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql -v /var/lib/mysql:/var/lib/mysql --name <name>
启动容器 -
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这个镜像
-
docker ps
查看启动是否成功 -
docker exec -it robking_mysql /bin/bash
在宿主机上进入容器,登录守护式容器 -
mysql -u root -p
登录mysql -
查看mysql版本
-- 第一种 select version(); --第二种 select @@version;
-
获取
mysql
容器的ip地址
docker inspect robking_mysql | grep IPAddress
Docker部署Gin+MySQL+Redis
项目
MySQL
-
docker pull mysql
拉取mysql镜像 -
docker run --name mysql -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
启动mysql容器,具体使用参考上面
Redis
-
docker pull redis
拉取redis镜像 -
docker run --name redis -v /usr/local/redis:/usr/local/redis -p 6379:6379 -d redis
启动redis容器,通过
docker ps
查看容器正在运行
mall(项目)
-
制作项目
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"]
-
修改项目的配置文件,这个配置文件里面主要包括
mysql
的ip:port
;redis
的ip:port
;mysql
连接信息包括账号密码,使用的数据库 -
docker build -t mall:1.0 .
将我们的项目通过Dockerfile制作成镜像此时会去下载golang环境(镜像),编译我们的程序,下载相关的依赖,指定暴露的端口
成功的标志是每一步都会返回一串id
-
docker run --name mall -p 3000:3000 -d mall:1.0
运行这个镜像在后面加上
--rm
将会在容器结束运行时自动删除我的理解是相当于我们在本地启动项目
-
如果启动失败出现数据库连接失败或者忘记建数据库了那么就需要重新删除项目的镜像,改动我们的代码,重新通过Dockerfile制作成镜像,然后重新运行这个镜像(启动项目)
评论区