golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙

如果你已经掌握基础那么请直接看下面实战

docker 笔记 —>开始

注:笔记是随便做的,没有注重排版和美化

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装docker地址:https://docs.docker.com/engine/install/centos/

engine docker 核心引擎

​ 1.docker daenon

​ 2.rest api

​ 3.docker client 客户端命令行使用

container 容器

images镜像

公开镜像:https://hub.docker.com/search?q=UBUNTU&type=image

//docker images 
//运行镜像 
docker run -it image_name 
//摘取镜像
docker pull ubuntu:18.04

//构建镜像
docker build -t image_name
//查看镜像分层
docker history image_id

//查看镜像列表
docker images
docker image ls

//创建容器
docker create -it image_name:image_tag
//启动容器
docker start container_name

//查询镜像
docker images | grep registry
//挂载镜像
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2.7
//管理私有仓库
docker tag ubuntu 127.0.0.1:5000/private_registry

//docker run -d 得时候会从后台运行容器
docker ps //正在运行得容器

查看指定容器端口映射
docker container port container_name

 attach
//进入一个正在运行得容器 通过attach进入的容器 exit 退出后会关闭整个容器

docker attach container_name

 

//exec在运行得容器内执行任意命令

docker exec -it container_name /bin/bash



删除容器

docker rm container_id/container_name -f  强制删除




导入容器

docker import -m"描述"  thomas.tar image_name:0.0.1

导出容器

	导出一个已经创建好得容器到一个文件  不管这个容器是否处于运行状态都可以

docker export -o thomas.tar container_name 



查看容器

1.查看容器详情
	docker container inspect container_name

2.查看容器内得进程

​	只能查看处于运行中得容器

docker container top container_name

3.//查看容器得统计

docker container stats container_name

4.//查看隐射端口

docker container port container_name

5.//清理容器

docker container prune 清理处于停止得容器
6.//查看容器日志
docker logs container_id -f

Registry 储存镜像得公共服务器 类似github

概述:仓库表示存储镜像得地方

分类:

​ docker 官方镜像仓库

​ 第三方镜像仓库

搭建私有仓库

通过docker官方提供的registry镜像来搭建本地私有仓库

//1.拉取公共镜像
docker pull registry

docker images
//2.创建目录 存储镜像用
cd /usr/local
mkdir docker_registry
//3.启动镜像
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
docker run -d -p 5000:5000 --name=jackspeedregistry --restart=always --privileged=true  -v /usr/local/docker_registry:/var/lib/registry  docker.io/registry

 -p 5000:5000 端口
  --name=jackspeedregistry 运行的容器名称
  --restart=always 自动重启
   --privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执
//4.创建一个docker tag 镜像名字:镜像版本 仓库地址/镜像名称:镜像版本
docker tag ubuntu 127.0.0.1:5000/ubuntu:1.1.1

//5.推送到私有仓库 docker push 镜像服务器地址/镜像名称:版本号
docker push 127.0.0.1:5000/ubuntu:1.1.1

//6.查看私有仓库中有哪些镜像
curl 127.0.0.1:5000/v2/_catalog

//7.获取某个镜像的标签列表:
curl -XGET http://192.168.1.8:5000/v2/thomas_mysql/tags/list

//8.拉取私有仓库镜像
docker pull 127.0.0.1:5000/thomas_mysql:bast
//9.创建容器
docker create -it 127.0.0.1:5000/thomas_mysql:bast /bin/bash
docker start 3000dc61be96

dockerfile

概念:

​ dockerfile 是一个用来构建镜像的文件,

​ 构建镜像的基本步骤

​ 1.编写dockerfile

​ 2.通过dockerfile构建镜像

​ 3.通过镜像产生容器

docker书写规则

​ 1.#表示注释

​ 2.每个指令都是大写字母

​ 3.指令是从上到下的顺序执行

docker执行dockerfile的流程

​ 1.docker从基础镜像运行一个容器

​ 2.执行一条命令并对容器进行修改

​ 3.执行类似docker commit的操作提交一个新的镜像层

​ 4.docker在基于刚提交的下一条指令运行一个 新的容器

​ 5.直到所有指令执行完成

docker 笔记 —>结束

Dockerfile例子 实战实战实战 重要的事情说三遍!!

流程介绍
1.建立私有仓库
2.打包我们的项目代码
3.把打包后的代码制作成镜像
4.推送到私有仓库
5.服务器pull 镜像
6.服务器运行镜像

1. 在服务器建立一个私有镜像仓库

我仓库是在服务器上centos7

拉取镜像:

docker pull docker.io/registry

golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第1张图片
运行私有云仓库镜像

docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry docker.io/registry:latest

在这里插入图片描述

2. 本地打包开发好的项目制作dockerfile

场景介绍:
golang 打包好的gin项目 生成了 linux可执行文件。将该文件写入alpine 镜像中

FROM alpine as builder
# 容器环境变量添加

# 设置工作区
WORKDIR /go/web
ADD ./ .

# 开启端口
EXPOSE 3001
# 运行程序
CMD ["./t6"]

3. 本地把开发好的项目编译到docker镜像 dockerfile

Dockerfile文件写完后开始构建镜像:

  1. docker build -t image_name .
    golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第2张图片
    构建完成!
    查询构建的镜像:
docker images

golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第3张图片
上图可见构建成功!

4. 本地推送镜像到私有镜像

由于当前构建的 项目还在我们的本地 所以我们要把项目推送到前面自己建立的私有云仓库上去
1.添加标签

docker tag app ip:5000/app:/latest
  1. 推送到私有云
docker push ip:5000/app:latest

golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第4张图片
看到这个就表示推送成功!

推送遇到异常情况参考:

http: server gave HTTP response to HTTPS client
解决方案:

linux修改:

vi /etc/docker/daemon.json
写入
{"insecure-registries":["仓库ip:port"]}
systemctl daemon-reload
systemctl restart docker

mac上解决办法

Preferences ->Docker Engine
"insecure-registries":["仓库ip:port"]

在服务器上拉取镜像

5. 服务器拉取镜像

docker pull localhost:5000/app:latest

在这里插入图片描述
执行docker images查看

6. 运行镜像

在服务里面运行镜像

docker run -it --restart always -d --name app -p 3001:3001 docker_imge

golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第5张图片
查看容器:

docker ps

在这里插入图片描述
查看运行状况:

docker logs app -f

golang gin 项目部署 docker镜像制作 看这一篇就够了 项目部署一条龙_第6张图片
到这里就全部结束了!

祝你成功!

你可能感兴趣的:(docker,docker)