
制作Docker镜像一般有2种方法:
- 使用hub仓库中已有的环境,安装自己使用的软件环境后完成image创建
- 通过Dockerfile,完成镜像image的创建
下面通过展示具体操作方法:
第一种:使用hub仓库中已有的环境,安装自己使用的软件环境后完成image创建。
制作自己的Docker镜像环境,里面包括:
(1)centos
(2)golang
1、docker pull centos(pull最新的centos系统)

2、docker run -it centos /bin/bash(运行进入容器)

3、在centos环境中创建work用户
[root@132aaafe685d /]# useradd work
[root@132aaafe685d /]# su - work
4、下载go的Linux安装包,解压,配置环境变量
[work@132aaafe685d ~]$ mkdir goapp && cd goapp && wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz

[work@132aaafe685d goapp]$ tar zxvf go1.14.1.linux-amd64.tar.gz
[work@132aaafe685d goapp]$ vim ~/.bash_profile

[work@132aaafe685d go]$ source ~/.bash_profile
[work@132aaafe685d go]$ go version
go version go1.14.1 linux/amd64
[work@132aaafe685d go]$ echo $GOPATH
/home/work/goapp
[work@132aaafe685d go]$ echo $HOME
此时,go的最基础环境就算配置好了,让我们写一个go程序,运行一下吧~~~
5、go 实现"Hello World!"
[work@132aaafe685d ~]$ vim /home/work/goapp/src/main.go

6、go run main.go
[work@132aaafe685d ~]$ go run /home/work/goapp/src/main.go
Hello World!
7、docker commit -m "xxx" -a "authorName" containerID hub的名称/镜像名称:tag

8、docker commit && push到远端仓
C:UsersAdministrator>docker commit -m "centos and go env" -a "wenhan" 132aaafe685d zhangwenhan/gobox:v1
sha256:2f74c2d19210cc38da7267e5e8922dbafc1f33d9bf26ff01b27f335d9e6e8dec
C:UsersAdministrator>docker login
Authenticating with existing credentials...
Login Succeeded

9、查看https://hub.docker.com/里的个人仓,push的image已入库

10、如果要打包报错到本地
docker save -o D:DockerDesktopvm-dataDockerDesktopeboxsunny_gobox.tar zhangwenhan/gobox:v1.0

第二种:通过Dockerfile,完成镜像image的创建。
1、创建镜像所在文件夹+Dockerfile文件
(1)mkdir ebox && cd ebox
(2)touch Dockerfile
2、在Dockerfile文件中写入指令
FROM ubuntu
RUN apt-get update && apt-get install -y ruby ruby-dev
格式说明:
每行命令都是以 INSTRUCTION statement 形式,就是命令+ 清单的模式。命令要大写,“#”是注解。
FROM 命令是告诉docker 我们的镜像什么。
RUN 命令是在镜像内部执行。就是说他后面的命令应该是针对镜像可以运行的命令。
3、创建镜像
命令:docker build -t zhangwenhan/ebox:v2 .
docker build 是docker创建镜像的命令
-t 是标识新建的镜像属于 zhangwenhan的
ebox是仓库的名称
:v2 是tag
"."是用来指明 我们的使用的Dockerfile文件当前目录的

4、创建完成后,从镜像创建容器
docker run -t -i zhangwenhan/ebox:v2 /bin/bash