【docker学习之路】拉取,制作,提交镜像,推送到远程仓库

拉取镜像

由于我们要构建一个有拓展潜力的镜像,这里制作一个centos的镜像作为基础

搜索镜像

命令

docker search centos

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5831 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
consol/centos-xfce-vnc Centos container with “headless” VNC session… 109 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 69
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
tutum/centos Simple CentOS docker image with SSH access 45
centos/postgresql-96-centos7 PostgreSQL is an advanced Object-Relational … 40
centos/httpd-24-centos7 Platform for running Apache httpd 2.4 or bui… 30
kinogmt/centos-ssh CentOS with SSH 29 [OK]
pivotaldata/centos-gpdb-dev CentOS image for GPDB development. Tag names… 10
guyton/centos6 From official centos6 container with full up… 10 [OK]
drecom/centos-ruby centos ruby 6 [OK]
centos/tools Docker image that has systems administration… 5 [OK]
darksheer/centos Base Centos Image – Updated hourly 3 [OK]
pivotaldata/centos Base centos, freshened up a little with a Do… 3
mamohr/centos-java Oracle Java 8 Docker image based on Centos 7 3 [OK]
pivotaldata/centos-mingw Using the mingw toolchain to cross-compile t… 2
miko2u/centos6 CentOS6 日本語環境 2 [OK]
pivotaldata/centos-gcc-toolchain CentOS with a toolchain, but unaffiliated wi… 2
blacklabelops/centos CentOS Base Image! Built and Updates Daily! 1 [OK]
indigo/centos-maven Vanilla CentOS 7 with Oracle Java Developmen… 1 [OK]
pivotaldata/centos7-dev CentosOS 7 image for GPDB development 0
pivotaldata/centos6.8-dev CentosOS 6.8 image for GPDB development 0
smartentry/centos centos with smartentry 0 [OK]

建议直接上dockerhub去查找,dockerhub是一个开源公共的镜像仓库

拉取

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker pull centos

Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

标签

如果这里的镜像不带标签,标签默认为latest。镜像名也可以跟:标签名拉取特定的版本

docker pull centos:centos7.4.1708

版本标签可以在仓库查看 https://hub.docker.com/_/centos?tab=tags

查看镜像

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 470671670cac 5 weeks ago 237MB

镜像已经在本地了

进入镜像

镜像有了,我们把它运行起来

docker run -it 470671670cac /bin/bash
  • 470671670cac是上一步查看镜像的IMAGE ID
  • -i: 以交互模式运行容器,通常与 -t 同时使用
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • 末尾加/bin/bash相当于,在容器启时执行/bin/bash命令

制作

安装go环境

yum install golang -y
-y作用是安装过程中有(y/n)的选项一律y

安装git

yum install git -y

创建目录

mkdir /workplace

拷贝代码

我们在本地写一个简单的server

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "hello!",
		})
	})
	r.Run()
}

制作vendor

在终端输入
export GO111MODULE=on
export GOPROXY=https://goproxy.io
go mod init
go mod vendor

一个完整的项目构建完成

拷贝项目内容到容器中去

查看一下正在运行的容器

docker ps

>CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
abc87c95e3f9        470671670cac        "/bin/bash"         18 minutes ago      Up 18 minutes                           serene_golick

赋值CONTAINER ID,将项目内容拷到容器中

命令

docker cp 要拷贝到宿主机的相应路径 容器名(或容器ID):要拷贝的文件在容器里面的路径

docker cp . abc87c95e3f9:/workplac

项目已拷贝到容器中

[root@abc87c95e3f9 /]# cd workplace/
[root@abc87c95e3f9 workplace]# ls
go.mod go.sum main.go

编译

go build -o server

运行

后台运行

nohup ./server &

访问

# curl http://0.0.0.0:8080/ping

{“message”:“hello!”}

将容器提交为新镜像

语法

docker commit 容器id\容器名 新的镜像名字:版本

本地终端执行docker ps查看当前容器ID

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5615647e67a1 f12714b1c2d3 “/bin/bash” 26 minutes ago Up 26 minutes youthful_meitner

将变更后的容器提交
注意这里的镜像名必须为 xxx/name
xxx为你dockerhub上的用户名base为仓库名,不然会后面push会失败

docker commit 5615647e67a1 casainurbania/base:v1.0

再查看我们打包的镜像
docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
casainurbania/base v1.0 69b09264f7e1 8 seconds ago 1.15GB

推送到远程仓库

docker push casainurbania/base:v1.0

如果未登录可能需要docker login一下

查看

在这里插入图片描述
推送成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值