从零开始安装、编译、部署 Docker
2024-10-19 07:29:42
简介
主要介绍如何从基础系统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
具体参数不解释了,可以自己查;
相关资料
用云栖社区APP,舒服~
【云栖快讯】映客、熊猫TV、虎扑、HTC、优酷土豆、网聚宝、博云视觉、钉钉、驻云、e代驾……互联网时代知名企业现场分享他们的云端体验,更有意想不到的重磅神秘嘉宾来袭!8月9日,北京云栖大会即将直播! 详情请点击
最新文章
- CentOS 6.4下编译安装MySQL 5.6.14
- Netron开发快速上手(二):Netron序列化
- 通过接口实现JAVA和.NET互调用-JNInterface
- Servlet 之 GenericServlet
- java中的字符,字符串,数字之间的转换
- osharp3使用经验:整合DbContextScope 文章 1
- 单链表在不知头结点的情况下对第i个元素的删除
- [读书笔记]C#学习笔记八:StringBuilder与String详解及参数传递问题剖析
- Java 8 VM GC Tuning Guide Charter2
- Qt自定义带游标的slider,在滑块正上方显示当前值(类似于进度条,用一个额外的QLabel冒充QSilder的一部分,然后move就行了)
- ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间
- Linux安全审计命令
- Photoshop 学习中
- 几种常用的ajax 跨域请求
- 【转】Android中保持Service的存活
- axios 使用post方式传递参数,后端接受不到
- asp.net mvc + dapper(ORM框架) + easyui框架简洁的信息管理项目
- python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例)
- Spring 默认的 AopProxy
- IOS指纹识别调用
热门文章
- 洛谷P3980 [NOI2008]志愿者招募
- [LibreOJ #2983]【WC2019】数树【计数】【DP】【多项式】
- HBTS(HBOI) 2019 真实退役记
- wap webapp app区别
- redis linux安装过程回顾
- php 判断字符串之间包含关系
- web服务器/应用服务器
- Java网络编程(一)
- springboot-20-全局异常处理
- [转]RDL(C) Report Design Step by Step 3: Mail Label