![7f0522348d0b64c6d64104606d48950a.png](https://img-blog.csdnimg.cn/img_convert/7f0522348d0b64c6d64104606d48950a.png)
制作Docker镜像一般有2种方法:
- 使用hub仓库中已有的环境,安装自己使用的软件环境后完成image创建
- 通过Dockerfile,完成镜像image的创建
下面通过展示具体操作方法:
第一种:使用hub仓库中已有的环境,安装自己使用的软件环境后完成image创建。
制作自己的Docker镜像环境,里面包括:
(1)centos
(2)golang
1、docker pull centos(pull最新的centos系统)
![a50942018327f8d95ec844ef04a730d2.png](https://img-blog.csdnimg.cn/img_convert/a50942018327f8d95ec844ef04a730d2.png)
2、docker run -it centos /bin/bash(运行进入容器)
![a2b07bb0857752cea0589e85ddac859f.png](https://img-blog.csdnimg.cn/img_convert/a2b07bb0857752cea0589e85ddac859f.png)
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
![78bb421cb106179d615e988dfc9d56ab.png](https://img-blog.csdnimg.cn/img_convert/78bb421cb106179d615e988dfc9d56ab.png)
[work@132aaafe685d goapp]$ tar zxvf go1.14.1.linux-amd64.tar.gz
[work@132aaafe685d goapp]$ vim ~/.bash_profile
![fc63baf684de81fae709e9acb47678fc.png](https://img-blog.csdnimg.cn/img_convert/fc63baf684de81fae709e9acb47678fc.png)
[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
![a507e747614f05f96481893a5076feb1.png](https://img-blog.csdnimg.cn/img_convert/a507e747614f05f96481893a5076feb1.png)
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
![31ecdbacbb955562936f47f46bf9b00a.png](https://img-blog.csdnimg.cn/img_convert/31ecdbacbb955562936f47f46bf9b00a.png)
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
![6673b6e915e72e2fd356de47b4c20f37.png](https://img-blog.csdnimg.cn/img_convert/6673b6e915e72e2fd356de47b4c20f37.png)
9、查看https://hub.docker.com/里的个人仓,push的image已入库
![afc4d18bdd1d5c13716d3fb0b34fe733.png](https://img-blog.csdnimg.cn/img_convert/afc4d18bdd1d5c13716d3fb0b34fe733.png)
10、如果要打包报错到本地
docker save -o D:DockerDesktopvm-dataDockerDesktopeboxsunny_gobox.tar zhangwenhan/gobox:v1.0
![a05822e6645aa1eaccf414d3f0698126.png](https://img-blog.csdnimg.cn/img_convert/a05822e6645aa1eaccf414d3f0698126.png)
第二种:通过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文件当前目录的
![7830346bbf96d8964c849fde3675607f.png](https://img-blog.csdnimg.cn/img_convert/7830346bbf96d8964c849fde3675607f.png)
4、创建完成后,从镜像创建容器
docker run -t -i zhangwenhan/ebox:v2 /bin/bash