文章目录

  • 安装docker
  • 建立GO工程
  • 制作docker镜像
  • 查看docker镜像
  • 开启docker
  • 前台方式
  • 后台方式
  • 关闭docker


安装docker

安装依赖,输入

sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2
 
sudo yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
 
sudo yum install docker-ce docker-ce-cli containerd.io

如果报错:
Problem: package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3

那就先装新版的 containerd.io

dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

再装剩下两个

sudo yum install docker-ce docker-ce-cli
 
sudo systemctl start docker

验证是否安装成功

docker --version

出现

centos7 docker k8s搭建 centos8 docker安装部署_d3


即安装成功

设置开机自启

sudo systemctl enable docker

或自己手动启动

sudo service docker start

建立GO工程

新建一个hellodocker文件夹,在里面新建一个go工程,我取名为Web.go

package main

import (
	"fmt"
	"log"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "欢迎使用Go语言")
}

func main() {
	http.HandleFunc("/", handler)
	fmt.Println("服务端口:8080")                 //控制台输出信息
	err := http.ListenAndServe(":8080", nil) //设置监听的端口
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

执行:

centos7 docker k8s搭建 centos8 docker安装部署_d3_02


打开浏览器输入localhost:8080

若:

centos7 docker k8s搭建 centos8 docker安装部署_centos_03


则说明程序执行成功。

制作docker镜像

在工程目录hellodocker下,新建dockerfile文件

FROM golang:latest

MAINTAINER Razil "511728892@qq.com"

WORKDIR $GOPATH/hellodocker
ADD . $GOPATH/hellodocker
RUN go build .

EXPOSE 8080

ENTRYPOINT ["./hellodocker"]

FROM : 母镜像
MAINTAINER:维护者信息
WORKDIR : 工作目录
ADD:将文件复制到镜像中
RUN : 执行操作(就跟在终端执行语句一样)
EXPOSE : 暴露端口
ENTRYPOINT : 程序入口

然后打开终端
输入:

docker build -t hellodocker .

别忘了后面有一个点 .

docker build :构建镜像
hellodocker: 名字为hellodocker
. (点号):dockerfile目录为当前目录

执行:

centos7 docker k8s搭建 centos8 docker安装部署_d3_04


出现Successfully build …

说明构成成功。

查看docker镜像

在终端中输入:

docker images

centos7 docker k8s搭建 centos8 docker安装部署_centos_05


里面显示了本机所有docker的镜像与其基本信息。

开启docker

前台方式

在终端输入:

docker run -p 8080:8080 hellodocker

docker run: 运行docker镜像

-p 8080:8080 : 将宿主机(也就是本机)的8080端口映射到容器的8080端口,此 处需要先确认本机的8080端口并未被占用,否则将无法开启

hellodocker : 镜像名(也支持id)

后台方式

当在前台开启时候,终端无法进行其他操作,docker支持让容器在后台执行。
在终端输入:

docker run -p 8080:8080 -d hellodocker

执行后出现:

centos7 docker k8s搭建 centos8 docker安装部署_3c_06


即说明启动成功

我们可以查看本机当前后台正在开启的容器有哪些
在终端输入:

docker ps

可以看到正在运行的hellodocker容器

centos7 docker k8s搭建 centos8 docker安装部署_docker_07

关闭docker

停止和退出docker有两种方法,一个是kill另一个是stop
两种的区别是:
stop : 系统先发送停止信号,有充分的时间(默认10s)完成清理后再发送kill信号让容器退出
kill : 系统直接发送退出信号,让容器强制退出

具体操作:

我们在上一步 docker ps 中看到后台容器的运行情况,里面每个容器都有其独立的container id。

复制需要关闭的容器id

当前hellodocker的id是:

centos7 docker k8s搭建 centos8 docker安装部署_d3_08


也就是e0b66d33cb81

在终端输入:

docker stop e0b66d33cb81

docker kill e0b66d33cb81

即可关闭容器