docker
2020-02-26 15:09:21 0 举报
AI智能生成
docker、linux、git...等java扩展知识
作者其他创作
大纲/内容
java技术++
linux
linux目录结构
bin
boot
lib
opt
etc
home
mnt
usr
docker
简介
关键字
docker容器
docker镜像
概述
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。而是对进程进行封装隔离,属于操作系统层面的虚拟化技术,Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
优势
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
更轻松的迁移
更轻松的维护和扩展
知识点
Docker 镜像
对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
特点
分层存储
镜像构建时,会一层层构建,前一层是后一层的基础
Docker容器
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间
Docker容器之间互不干扰
Docker 仓库
分类
共有Docker Registry
开放给用户使用、允许用户管理镜像
例
官方的 Docker Hub
国内访问较慢,国内的一些云服务商提供了针对 Docker Hub 的镜像服务这些镜像服务被称为加速器
私有Docker Registry
本地搭建私有 Docker Registry
Docker引擎
Docker 引擎组件的流程
1、一种服务器,它是一种称为守护进程并且长时间运行的程序。2、REST API用于指定程序可以用来与守护进程通信的接口,并指示它做什么。3、一个有命令行界面 (CLI) 工具的客户端。
Docker系统架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。Docker 容器通过 Docker 镜像来创建容器与镜像的关系类似于面向对象编程中的对象与类。
构图
docker安装
linux(ubuntu)
安装注意事项
vmware联网
以太网ipv4 更改为自动获取ip地址和自动获取dns服务器地址
安装ubuntu系统后的配置
网速慢,资源差
编辑数据源(修改为阿里镜像)
vi /etc/apt/sources.list
删除全部内容并修改为(推荐1)
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted ##Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.canonical.com/ubuntu xenial partnerdeb-src http://archive.canonical.com/ubuntu xenial partnerdeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-security universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
更新数据源
apt-get update
远程连接ubuntu系统
ubuntu系统需要安装openssh
apt-get install openssh-client
目录
配置文件目录
var
存放数据库的目录
/usr/local(可自定义操作)
我们自己安装的程序 必须放置在该目录
/home(可自定义操作)
usr/local和home可以新建目录,其它目录建议不要创建目录
linux命令
lsb_release -a
查看系统版本
sudo passwd root
设置 Root 账户密码
su
切换root
设置允许远程登录 Root
nano /etc/ssh/sshd_config# Authentication:LoginGraceTime 120#PermitRootLogin without-password //注释此行PermitRootLogin yes //加入此行StrictModes yes重启服务service ssh restart
nano命令(类似vi)
crtl + o
保存
crtl + x
退出
操作流程
y/n
是否保存
不需要修改文件名直接回车
需要修改文件名 输入新名称然后确 定
crtl + w
搜索
ctrl + u
粘贴
ctrl + c
来取消返回
ctrl + y
上一页
ctrl + v
下一页
apt命令(ubuntu)
apt-get install packagename
安装软件包
apt-get remove packagename
删除软件包
apt-get autoremove packagename
卸载所有依赖项
更新软件包列表
apt-get build-dep package
安装相关的编译环境
apt-get source package
下载源代码
版本
Docker CE 社区版
免费
Docker EE 企业版
收费
卸载旧版本
安装
apt-get install -y docker.io
能使用
无法使用
使用脚本自动安装
特别说明
脚本安装(推荐)
下载脚本
curl -fsSL get.docker.com -o get-docker.sh
执行
sudo sh get-docker.sh --mirror AzureChinaCloud
目前不能使用
目前使用
测试 Docker 是否安装正确
docker run hello-world
Docker镜像
配置镜像加速器
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入右边内容(如果文件不存在请新建该文件)
重新启动服务
获取镜像
Docker 镜像仓库获取镜像的命令
docker pull
可在https://hub.docker.com/ 搜索查找镜像
命令格式
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker pull ip:port/tomcat:jre-9
Docker 镜像仓库地址
<域名/IP>[:端口号]
默认地址是DockerHub
仓库名
两段式名称,即 <用户名>/<软件名>
默认为library
官方镜像
docker pull ubuntu:16.04
library/ubuntu 仓库
运行镜像
$ docker run -it --rm \\ ubuntu:16.04 \\ bash
-it
一个是 -i:交互式操作,一个是 -t 终端
进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端
--rm
容器退出后随之将其删除
避免浪费空间
ubuntu:16.04
指用 ubuntu:16.04 镜像为基础来启动容器
bash
放在镜像名后的是命令
可以在 Shell 下操作,执行任何所需的命令
列出镜像
命令
docker image ls
只会显示顶层镜像
docker image ls -a
显示包括中间出层镜像在内的所有镜像
docker image ls ubuntu
列出仓库名为ubuntu的镜像
虚悬镜像
<none>
新版本更新,旧版本名称被取消。从而为 <none>
docker pull或者docker build会导致这种情况
虚悬镜像已经失去了存在的价值,是可以随意删除的
docker image prune
删除镜像
docker rmi <镜像id>
docker image rm <镜像ID、镜像名、镜像摘要>
Dockerfile定制镜像
创建一个Dockerfile文件
Dockerfile命令
COPY
将宿主机目录里的文件COPY到docker容器里
COPY xxx.jar /xxx/xxx
COPY <源路径>... <目标路径>
ADD
同copy,但是可以直接访问网址获取资源,可以将压缩包自动解压
查看容器
docker ps
docker run -p 8080:8080 --name tomcat -d -v /usr/local/docker/tomcat/ROOT /usr/local/tomcat/webapps/ROOT tomcat
Docker 实战
示例
jar包运行部署完整示例
安装linux环境
ubuntu
参照docker安装-linux(ubuntu)
简单操作
安装ubuntu
安装docker环境
安装docker
sudo apt-get install docker-ce
配置镜像源
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
之后重新启动服务
sudo systemctl daemon-reloadsudo systemctl restart docker
下载镜像
docker pull openjdk:8-jre
创建xxx目录
在xxx目录下创建编写Dockerfile文件
FROM openjdk:8-jre//导入原始镜像RUN mkdir /app//创建app目录COPY itoken-config-1.0.0-SNAPSHOPT.jar /app///复制jar包到app目录CMD java -jar /app/itoken-config-1.0.0-SNAPSHOPT.jar --spring.profiles.acive=prod //执行CMD后的命令,用来运行jar包EXPOSE 8888 //暴露端口 8888
构建镜像
docker build -t 192.168.75.131:5000/itoken-config .
192.168.75.131:5000私服地址
复制要部署的jar包到xxx目录
测试启动
docker run -p 8888:8888 192.168.75.131:5000/itoken-config
xxx目录下
vi docker-compose.yml
git
GitLab
record
1、docker pull wang2218/gitlab-ce-zh
0 条评论
下一页