docker的centos安装操作及部分理解

栏目: 编程工具 · 发布时间: 7年前

内容简介:前两天在本地安装了docker,熟悉了下命令之后,还是忍不住到centos上进行了一波golang镜像部署,以下是我的操作步骤和一些想法。1、不多说,写Dockerfile(只想体验dockerfile的操作流程,所以选择了yum的安装方式)

前两天在本地安装了docker,熟悉了下命令之后,还是忍不住到centos上进行了一波golang镜像部署,以下是我的操作步骤和一些想法。

准备: 一台安装了 docker 的可联网的centos服务器

1、不多说,写Dockerfile(只想体验dockerfile的操作流程,所以选择了yum的安装方式)

# docker build
# Version 1.0
#
FROM centos
#
MAINTAINER yancoder@163.com
#
RUN yum install -y epel-release
RUN yum install -y docker-io
RUN yum provides '*/applydeltarpm'
RUN yum install deltarpm -y
RUN yum install -y gcc
RUN yum install -y go
RUN mkdir -p /data/gopath
ENV GOPATH /data/gopath
ADD src/ /data/gopath/src
ADD pkg/ /data/gopath/pkg
ADD test.go /data/gopath/test.go
WORKDIR /data/gopath
RUN go build -o server.bin test.go
#
CMD /data/gopath/server.bin

注释 别问我在gcc和 go 安装之前为什么还有四个安装步骤,我特么也不知道,反正就是报错了提示要我安装

源码安装如下

FROM centos
MAINTAINER yancoder@163.com
ENV GOROOT /usr/local/go
ENV GOPATH /data/gopath
ENV PATH $GOROOT/bin:$PATH
RUN yum install -y curl
RUN curl -s -o go.tar.gz https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
RUN tar --remove-files -C /usr/local/ -zxf go.tar.gz
RUN mkdir -p /data/go
RUN ln -sv /usr/local/go/bin/go /bin
ADD src/ /data/gopath/src
ADD pkg/ /data/gopath/pkg
ADD test.go /data/gopath/test.go
WORKDIR /data/gopath
RUN go build -o server.bin test.go
CMD /data/gopath/server.bin

2、创建镜像(注意最后面有一个小数点)

docker build -t golang:v1.0 .

3、创建容器,如果要绑定端口,也在这一步进行

docker run -d -p 80:80 golang:v1.0

4、在外部浏览器访问一下~

docker的centos安装操作及部分理解

坑点

1、要是dockerfile运行过程中出错,会在images中生成<none>的无用镜像,删除方法来自百度粘贴

# 删除命令:
docker rmi $(docker images | grep "none" | awk '{print $3}')
# 上一步报错还有未停掉的容器后可进行下面的步骤
# 停止容器
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') 
# 删除:
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')

2、在run的容器内进行exit,将会退出容器,并且使得容器也stop。正确做法是使用exec方式,命令如下:

docker exec -it imageId /bin/bash

3、如果使用dockerfile直接ADD文件进docker里头的话,这个没啥。但是如果想要将当前目录的文件复制进docker里头,首先要保证镜像在运行(docker ps),然后docker cp 命令中的容器名使用我圈出来的那个名字。删除和启动停止容器都是用前面那个ID

docker的centos安装操作及部分理解

4、还没找到给running的容器映射端口的方法,找了些帖子,貌似有配置文件可修改。方便起见在创建容器的时候绑定算了~

总结

docker是 工具 类应用,其实有点类似git,脑袋里头想一下docker的实现流程就能丝滑般掌握了

还有一些常用的docker命令,以及文件映射啥的,请点击 docker操作手册


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

React开发实战

React开发实战

[美] Cássio de Sousa Antonio / 杜伟、柴晓伟、涂曙光 / 清华大学出版社 / 2017-3-1 / 58.00 元

介绍如何成功构建日益复杂的前端应用程序与接口,深入分析 React库,并详述React生态系统中的其他工具与库,从而指导你创建完整的复杂应用程序。 你将全面学习React的用法以及React生态系统中的其他工具和库(如React Router和Flux 架构),并了解采用组合方式创建接口的佳实践。本书简明扼要地讲解每个主题,并呈现助你高效完成工作的细节。书中严谨深刻地讲述React中重要的功......一起来看看 《React开发实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器