本文讲述Docker在CentOS系统上的部署过程。Ubuntu系统下安装docker,您可以点击此处查看。更多详细的实践您可以参考docker实践文档

适用对象

适用于熟悉Linux操作系统,刚开始使用阿里云ECS的开发者。

主要内容

  • 部署docker
  • docker基本用法
  • 镜像制作

部署docker

本文主要说明手动安装docker的操作步骤,您也可以选择在云市场购买相应镜像,一键部署云服务器。

本文实践操作系统版本为CentOS 7.2 64 3.10.0-514.6.2.el7.x86_64

Docker要求64位的系统且内核版本至少为3.10

1、添加yum源。

  1. # yum install epel-release –y
  2. # yum clean all
  3. # yum list

2、安装并运行Docker。

  1. # yum install docker-io –y
  2. # systemctl start docker

3、检查安装结果。

  1. # docker info

出现以下xin说明信息则表明安装成功。

docker基本用法

1、Docker守护进程管理。

  1. # systemctl start docker #运行Docker守护进程
  2. # systemctl stop docker #停止Docker守护进程
  3. # systemctl restart docker #重启Docker守护进程

2、镜像管理。

下载基础镜像,具体操作可参考如何下载docker镜像,本文使用的是来自阿里云仓库的Apache镜像。您可在阿里云docker市场搜索更多镜像

  1. # docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

修改标签,由于阿里云仓库镜像的镜像名称很长,可以修改镜像标签以便记忆区分。

  1. # docker tag registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5:latest aliweb:v1

查看已有镜像。

  1. # docker images

强制删除镜像。

  1. # docker rmi –f registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

3、容器管理。e121d5f99e1e是执行docker images命令查询到的IMAGE ID,使用docker run命令进入容器。

  1. # docker run –ti e121d5f99e1e /bin/bash

使用exit可以退出当前容器。run命令加上–d参数可以在后台运行容器,—name指定容器命名为apache。

  1. # docker run -d --name apache e121d5f99e1e

进入后台运行的容器。

  1. # docker exec -ti apache /bin/bash

将容器做成镜像。

  1. # docker commit containerID/containerName newImageName:tag

为了方便测试和恢复,先将源镜像运行起来后再做一个命名简单的镜像做测试。

  1. # docker commit 4c8066cd8c01 apachephp:v1

运行容器并将宿主机的8080端口映射到容器里去。

  1. # docker run -d -p 8080:80 apachephp:v1

在浏览器输入宿主机ip加8080端口访问测试,出现以下内容则说明运行成功。

镜像制作

1、准备dockerfile内容。

  1. # vim Dockerfile
  2. FROM apachephp:v1 #声明基础镜像来源
  3. MAINTAINER DTSTACK #声明镜像拥有者
  4. RUN mkdir /dtstact #RUN后面接容器运行前需要执行的命令,由于Dockerfile文件不能超过127行,因此当命令较多时建议写到脚本中执行
  5. ENTRYPOINT ping www.aliyun.com #开机启动命令,此处最后一个命令需要是可在前台持续执行的命令,否则容器后台运行时会因为命令执行完而退出。

2、构建镜像。

  1. docker build -t webcentos:v1 . # . 是Dockerfile文件的路径,不能忽略
  2. docker images #查看是否创建成功
  3. docker run –d webcentos:v1 #后台运行容器
  4. docker ps #查看当前运行中的容器
  5. docker ps –a #查看所有容器,包括未运行中的
  6. docker logs CONTAINER ID/IMAGE #如未查看到刚才运行的容器,则用容器id或者名字查看启动日志排错
  7. docker commit fb2844b6c070 dtstackweb:v1 #commit 后接容器id 和构建新镜像的名称和版本号。
  8. docker images #列出本地(已下载的和本地创建的)镜像
  9. docker push #将镜像推送至远程仓库,默认为 Docker Hub

3、将镜像推送到registry。

  1. docker login --username=dtstack_plus registry.cn-shanghai.aliyuncs.com #执行后输入镜像仓库密码
  2. docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/dtstack123/test:[镜像版本号]
  3. docker push registry.cn-shanghai.aliyuncs.com/dtstack123/test:[镜像版本号]

在镜像仓库能查看到镜像版本信息则说明push成功

其中[ImageId],[镜像版本号]请您根据自己的镜像信息进行填写

https://help.aliyun.com/document_detail/51853.html

https://yq.aliyun.com/articles/60601?spm=5176.100239.blogcont68337.17.O9fc0l

镜像加速器
Docker Hub 在国外,有时候拉取 Image 极其缓慢,可以使用国内的镜像来实现加速

阿里云
echo "DOCKER_OPTS=\"--registry-mirror=https://yourlocation.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
sudo service docker restart
其中 https://yourlocation.mirror.aliyuncs.com 是您在阿里云注册后的专属加速器地址:

DaoCloud
sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> /etc/default/docker
sudo service docker restart
其中 http://your-id.m.daocloud.io 是您在 DaoCloud 注册后的专属加速器地址:

源码
获取项目源码, https://github.com/waylau/docker-demos 中的 samples/spring-boot

获取项目镜像, 执行

docker pull waylau/docker-spring-boot

https://yq.aliyun.com/articles/47344

ECS上搭建Docker(CentOS7)的更多相关文章

  1. ECS上搭建Docker(CentOS7)

    ECS上搭建Docker(CentOS7) centos下 yum快速安装maven ## 安装jdk8 yum install -y java-1.8.0-openjdk* ## 安装maven w ...

  2. 在Ubuntu14.04系统POWER8服务器上搭建Docker Registry服务

    本文描述了如何在POWER8服务器上搭建一个本地化的Docker镜像仓库,主要涉及镜像制作,Docker Registry服务启动等.希望能够对在非X86服务器上搭建Docker仓库的同学提供参考. ...

  3. Oracle_lhr_CentOS 7.3 ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置

    Oracle_lhr_CentOS 7.3  ECS上搭建RAC 18c+单实例DG+EMCC+DG的FSFO快速故障转移配置 [大型连续免费公开课]Oracle 18c rac+dg+13.3的em ...

  4. 如何在windows10家庭版上搭建docker

    如何在windows10家庭版上搭建docker 建议先跳到最后一条,看完之后再决定是否安装. 0X00搭建原因 首先搭docker的想法是我在复现漏洞时候,发现大佬们的复现环境都是基于docker的 ...

  5. 在CentOS 7上搭建Docker环境

      Preface       We commonly use VMware or VirtualBox to install our Virtual Machines before.For the ...

  6. CentOS 7上搭建Docker环境

    一.Docker介绍和安装 http://linux.cn/article-4340-1.html Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机 ...

  7. 在阿里云ECS上搭建LEMP环境

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  8. mac上搭建docker镜像私服

    1.创建私服容器 docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/t ...

  9. 搭建docker私有仓库

    保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...

随机推荐

  1. Xcode自定义字体不能应用的原因

    想给UILabel换一个自定义的字体,从字体册选择兰亭黑: 然后选择 在Finder中显示,找到字体文件为Lantinghei.ttc: 将其拷贝到项目中,在info.plist里添加字体支持key, ...

  2. 史上最全Android Studio快捷键 -2016-02-28

  3. 一个简单的基于 DirectShow 的播放器 2(对话框类)

    上篇文章分析了一个封装DirectShow各种接口的封装类(CDXGraph):一个简单的基于 DirectShow 的播放器  1(封装类) 本文继续上篇文章,分析一下调用这个封装类(CDXGrap ...

  4. 【Android 应用开发】BluetoothSocket详解

    一. BluetoothSocket简介 1. 简介 客户端与服务端 : BluetoothSocket 和 BluetoothServerSocket 类似于Java中的套接字的 Socket 和 ...

  5. mahout系列----minhash聚类

    Map: Vector featureVector = features.get(); if (featureVector.size() < minVectorSize) {       ret ...

  6. NOSQL schema创建原则

    (1)数据规模 Bigtable类数据库系统(HBase,Cassandra等)是为了解决海量数据规模的存储需要设计的.这里说的海量数据规模指的是单个表存储的数据量是在TB或者PB规模,单个表是由千亿 ...

  7. ASP.NET Core 2.0 : 九.从Windows发布到CentOS的跨平台部署

    本文聊一下如何在Windows上用VS开发并发布, 然后将其部署到CentOS上.对于我们一些常在Windows上逛的来说,CentOS用起来还真有些麻烦.MSDN官方有篇文章大概讲了一下(链接),按 ...

  8. Https背景与证书在spring boot项目中的使用

    https背景(本人学习参考中觉得不错的几篇文章) https如何解决安全问题 HTTPS 理论基础及其在 Android 中的最佳实践 什么是https 关于https的个人总结 总所周知http是 ...

  9. mysql6.5 操作日志

    创建用户并授权 grant all privileges on database.* to user@localhost identified by '123456'; flush privilege ...

  10. 开启flume的远程调试功能

    各种组件,比如tomcat.storm.flume,我们都可以通过JMX方式开启远程调试,主要可以用来跟踪源码,了解程序内部的运行机制,其次,也有利于你修改源码. 首先,本质上是要修改flume本身启 ...