从零开始安装、编译、部署 Docker

简介

主要介绍如何从基础系统debian部署docker
关于docker基础知识在 相关资料 里有链接

安装docker

1、使用root用户身份添加apt源
添加public key使docker的安装源授信

$ curl -s 'https://sks-keyservers.net/pks/lookup?op=get&search=0xee6d536cf7dc86e2d7d56f59a178ac6c6238f52e' | sudo apt-key add --import

安装apt的https支持

sudo apt-get update && sudo apt-get install apt-transport-https

安装image虚拟化支持

sudo apt-get install -y linux-image-extra-virtual

添加apt源

echo "deb https://packages.docker.com/1.11/apt/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list

安装docker

apt-get update && apt-get install docker-engine

查看是否安装成功

docker info

看到以下信息就安装成功了

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 15
Server Version: 1.11.2-cs3
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 17
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 3.871 GiB
Name: debian
ID: IWCZ:QXXZ:VBUN:UMF7:XRG3:CMXB:6LUO:F65C:OA6B:75QQ:7SEW:3OKT
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/

制作基础软件镜像

jdk8

首选需要安装jdk,这里使用jdk8进行安装
download jdk
同目录下编写Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/yuuji/debian:latest

ADD jdk-8u101-linux-x64.tar.gz /opt

ENV JAVA_HOME /opt/jdk1.8.0_101

WORKDIR /usr/bin
RUN ln -s /opt/jdk1.8.0_101/bin/java java

目录结构如下:

编译发布

docker build -t jdk8 .

也可以在docker hub服务器创建仓库发布到远程

docker build -t registry.cn-hangzhou.aliyuncs.com/xxx/jdk8 .
docker push registry.cn-hangzhou.aliyuncs.com/xxx/jdk8

发布后可以到远程查看,也可以使用命令查看

docker images

mave3

基于jdk8我们在制作一个maven3的image,步骤同上,我就不一一列举命令了;
Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/yuuji/jdk8:latest

ADD settings.xml /root/.m2/settings.xml
ADD apache-maven-3.3.9-bin.tar.gz /opt

WORKDIR /usr/bin
RUN ln -s /opt/apache-maven-3.3.9/bin/mvn mvn

发布,查看是否成功

制作软件错误

如果过程中遇到错误怎么办
使用 命令 docker images 如果看到了none的可以使用命令 docker rmi IMAGE ID 进行清理;
如果清理不掉的话是这个镜像被使用了,使用docker ps -a 然后找到使用的CONTAINER
然后 docker rm CONTAINER ID

编译项目与部署

这里是通过spring-boot首先项目可以启动
然后在项目跟目录下建立Dockerfile

FROM registry.cn-hangzhou.aliyuncs.com/yuuji/maven3:latest

EXPOSE 7001

RUN mkdir -p /opt/leona
WORKDIR /opt/leona
ADD . /opt/leona

RUN mvn clean install -Dmaven.test.skip

CMD ["java","-jar","target/leona.jar"]

端口号 7001 是你spring-boot web配置的

结构如下:

然后编译image 同软件,这里我就不发布到远程了

docker build -t xxx .

最终的本地仓库docker images

部署

已经编译好了软件和程序的image接下来就是部署了

docker run -d -p 7001:7001 xxx

检查一下curl localhost:7001

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>Leona</title>
    </head>
<body>
    hello word!
</body>
</html>

是不是很简单? 233

具体参数不解释了,可以自己查;

相关资料

关于docker
参考官方安装文档
docker hub服务器

时间: 2025-01-30 01:21:44

从零开始安装、编译、部署 Docker的相关文章

Redis基本知识、安装、部署、配置笔记

 这篇文章主要介绍了Redis基本知识.安装.部署.配置笔记,本文讲解了基本知识.安装Redis.Redis的配置等知识,需要的朋友可以参考下     基本知识 1.Redis的数据类型: 字符串.列表(lists).集合(sets).有序集合(sorts sets).哈希表(hashs) 2.Redis和memcache相比的独特之处: (1)redis可以用来做存储(storge).而memcache是来做缓存(cache).这个特点主要是因为其有"持久化"功能 (2)存储的数据有

《智能路由器开发指南》——第2章 开发环境及编译分析 2.1 安装编译环境

第2章 开发环境及编译分析 如果你想从事智能路由器OpenWrt开发,首先必须掌握如何编译OpenWrt.本章将从搭建环境,到编译代码,再到安装部署运行以及VirtualBox虚拟网络环境的搭建,一步一步地教你如何进入到OpenWrt大门. OpenWrt是一个针对嵌入式设备的Linux发行版.OpenWrt提供了非常方便的开发环境,使用流行的Linux操作系统Ubuntu即可搭建好编译环境.OpenWrt有非常多的平台适应性,可以运行在ARM/MIPS/X86平台上,因此我们的研发网络部署也可

Nginx+FastCGI编译部署过程详述

最近,因为工作的需要,我们用Nginx+FastCGI部署了一个高性能的Web服务器.在部署的过程中,我们遇到了很多问题,也参考了一些文章,发现很少有文章将整个编译部署的过程讲清楚的.鉴于此,根据我们项目组成功部署Nginx+FastCGI的经验,我写下了这篇文章,可供相关项目的开发人员参考. 首先,对于为什么要用Nginx+FastCGI部署高性能Web服务器,我就不赘述了,网上有很多的文章,例如以下这几篇: http://blog.csdn.net/allenlinrui/article/d

阿里云部署Docker(5)----管理和发布您的镜像

出到这节,我在百度搜索了一下"阿里云部署Docker",突然发现怎么会有人跟我写的一样呢?哦,原来是其他博客系统的爬虫来抓取,然后也不会写转载自什么什么的.所以,我终于明白为什么那些大咖的文章总会在文章的开头写明,转载请注明原创来自xxx的.恩.get it,从这篇开始,我也要这样了. 本文欢迎转载,但要尊重本人劳动成果,转载注明转自"http://blog.csdn.net/minimicall/" http://blog.csdn.net/minimicall/

OpenStack Magnum如何部署Docker Swarm等容器

OpenStack Magnum通常用于部署和监控容器--如Docker Swarm.Google Kubernetes 和 Apache Mesos等,但是除此之外这个项目还有一些其他有用工具. 易于部署,并且体积要比hypervisor小很多,这些都是容器技术日益流行的原因,此外,单个容器只需要完成特定任务.现在最为常见的三种容器是Docker Swarm.Google Kubernetes和Apache Mesos. 使用容器技术,管理员能够部署完整应用或者是应用的重要组成部分,并且其体积

《智能路由器开发指南》——2.4 编译部署出现问题的解决方法

2.4 编译部署出现问题的解决方法 1.虚拟机和Window 10之间不能访问 请查看Window 10的防火墙设置,关闭Windows 10的防火墙来解决这个问题. 2.编译grub2模块出错,提示下载失败 直接使用wget工具或浏览器来下载,如果确实下载不成功,可以替换为之前grub-2.0.0的版本来进行编译. 3.提示opkg编译失败,使用Git下载失败 使用wget直接下载即可.如果下载还失败,可以使用迅雷等下载工具来下载,如果还不行则可以替换为较低的版本来编译. 4.提示cyassl

部署 Docker Registry 服务

本文讲的是部署 Docker Registry 服务,[编者的话]本文阐释了怎样部署私有的 Docker Registry 服务 -- 或为公司私用,或公开给其他用户使用.例如,你公司可能需要私人的 Registry 来支持持续集成(CI).又或,你的公司可能有大量镜像方式的产品或服务,你想以公司品牌的方式来整体提供和呈现. 本文阐释了怎样部署私有的 Docker Registry 服务 -- 或为公司私用,或公开给其他用户使用.例如,你公司可能需要私人的 Registry 来支持持续集成(CI

php7 安装yar 生成docker镜像

Docker包含三个概念: (1)远程仓库即远程镜像库所有镜像的聚集地(不可进入操作). (2)本地镜像即从远程仓库拉取过来的镜像 (3)运行起来的本地镜像叫做容器(分层的可操作) Docker使用: 1.首先通过第三方镜像库(c.163.com)拉取相应的信息比如centos,ubuntu,tomcat等作为基础镜像. Docker pull xxxx 2.运行下载好的镜像. Docker run -dt -p 宿主机端口:镜像端口 --name起一个名字 镜像id/镜像名字 bash -d

使用Liferay Maven 编译部署Theme 深入分析

今天同事问我在Maven构建Theme时Liferay框架默认资源文件从何处获取,我对比了下使用Ant来编译部署 Theme和使用Maven来编译部署Theme的过程,发现:在复制框架默认资源文件时,居然是完全不同的策略! Ant 复制Liferay默认资源文件的策略: 大家都知道,在用Ant编译Theme时,我们程序员需要 在_diffs目录下添加一些和Liferay框架不同的资源文件,而Liferay框架本身的资源文件都会从 $LIFERAY_HOME\tomcat-7.0.23\webap