简介

主要介绍如何从基础系统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服务器

用云栖社区APP,舒服~

【云栖快讯】映客、熊猫TV、虎扑、HTC、优酷土豆、网聚宝、博云视觉、钉钉、驻云、e代驾……互联网时代知名企业现场分享他们的云端体验,更有意想不到的重磅神秘嘉宾来袭!8月9日,北京云栖大会即将直播!  详情请点击

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

  1. Jenkins教程——从安装到部署Docker服务(一)安装Jenkins

    前言 写了好久Jenkins的脚本了,写得虽然不是太好,但是可以基本满足需要,最近比较忙,这个月也没怎么更新博客,开始更新Jenkins这个系列的文章,打算从安装Jenkins -> 流水线工程 ...

  2. Jenkins教程——从安装到部署Docker服务(二)声明式流水线HelloWorld

    前言 本文通过一个声明式流水线的HelloWorld程序做一下流水线基础入门,对常用的流水线参数进行简要说明 什么是流水线 现实中的流水线 流水线比较好理解,类比于现实生活中的生产流水线,每个流程只做 ...

  3. 014.Kubernetes二进制部署docker

    一 部署docker 1.1 部署docker组件 docker 运行和管理容器,kubelet 通过 Container Runtime Interface (CRI) 与它进行交互. 1.2 下载 ...

  4. docker安装tomcat&部署javaweb程序

    一.docker定制简单的java-web应用镜像 网址: 1.jdk下载网址:https://www.oracle.com/technetwork/java/javase/downloads/jdk ...

  5. Linux下部署docker记录(0)-基础环境安装

    以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...

  6. CRFPP/CRF++编译安装与部署

    CRFPP/CRF++编译安装与部署 下载CRF++ https://taku910.github.io/crfpp/#download 说明:在上面网站中下载CRF++ 0.58 解压 tar zx ...

  7. 从零开始安装 Ambari (4) -- 通过 Ambari 部署 hadoop 集群

    1. 打开 http://192.168.242.181:8080  登陆的用户名/密码是 : admin/admin 2. 点击 “LAUNCH INSTALL WIZARD”,开始创建一个集群 3 ...

  8. Spark Tachyon编译部署(含单机和集群模式安装)

    Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...

  9. Docker安装与部署

    安装Docker: 查看你当前的内核版本: uname -r 更新yum包: sudo yum update 卸载旧版本(如果安装过旧版本的话): sudo yum remove docker doc ...

随机推荐

  1. 关于 maven 打包直接运行的 fat jar (uber jar) 时需要包含本地文件系统第三方 jar 文件的问题

    关于maven打包fat jar (uber jar) 时需要包含本地文件系统第三方jar文件的问题,今天折腾了一整天.最后还是用了spring boot来做.下面是几篇关于打包的有参考价值的文章,以 ...

  2. 在windows上添加cygwin右键

    来了一台新机器,装环境的时候,突然想直接在右键使用cygwin. 查了一些教程,基本大同小异,也算是有用,先贴一个链接: https://blog.csdn.net/yang_hong_/articl ...

  3. 深入了解Looper、Handler、Message之间关系

    深入了解Looper.Handler.Message之间关系 前言及简介 上个星期我们整个项目组趁着小假期,驱车去了江门市的台山猛虎峡玩了两个多钟左右极限勇士全程漂流,感觉真得不错,夏天就应该多多玩水 ...

  4. TryParse用法

    int.Parse()是一种类型转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatExce ...

  5. redis 数据类型 Hash

    Redis 数据类型Hash:hash数据类型存储的数据和mysql数据库中存储的一条记录很类似. hash的一些操作: 比如数据库是user表,有id,name,age ,sex,可以建立与之对应的 ...

  6. $scope作用域与依赖注入

    一.$scope与$rootscope作用域 $scope下的数据作为该控制器下的数据moduel,只有在该控制器下才能够访问:而$rootScope则可以可以再任何有效的地方访问到,这个有效的地方指 ...

  7. ActiveMQ安装及使用

    1 安装环境 1.需要jdk2.安装Linux系统.生产环境都是Linux系统. 2 安装步骤 第一步: 把ActiveMQ 的压缩包上传到Linux系统.第二步:解压缩. 第三步:关闭防火墙 临时关 ...

  8. tmux快捷键汇总(常用)

    会话外操作: tmux new -s <name-of-my-session> 在会话外创建一个新的会话 tmux ls 在会话外获取会话列表 tmux a(attach) -t < ...

  9. mysql去除重复记录案例

    例1,表中有主键(可唯一标识的字段),且该字段为数字类型 1 测试数据 /* 表结构 */ DROP TABLE IF EXISTS `t1`; CREATE TABLE IF NOT EXISTS ...

  10. 查看windows系统块大小

    C:\Users\xyw>fsutil fsinfo ntfsinfo 用法 : fsutil fsinfo ntfsinfo <volume pathname> 例如 : fsut ...