docker
2020-02-26 15:09:21 0 举报
AI智能生成
docker、linux、git...等java扩展知识
作者其他创作
大纲/内容
linux
linux目录结构
bin
boot
lib
opt
etc
home
mnt
usr
docker
简介
关键字
docker容器
docker镜像
概述
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,
在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核
,容器内没有自己的内核,而且也没有进行硬件虚拟。而是对进程进行封装隔离,
属于操作系统层面的虚拟化技术,Docker 在容器的基础上,
进行了进一步的封装,从文件系统、网络互联到进程隔离等等,
极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核
,容器内没有自己的内核,而且也没有进行硬件虚拟。而是对进程进行封装隔离,
属于操作系统层面的虚拟化技术,Docker 在容器的基础上,
进行了进一步的封装,从文件系统、网络互联到进程隔离等等,
极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
优势
更高效的利用系统资源
更快速的启动时间
一致的运行环境
持续交付和部署
更轻松的迁移
更轻松的维护和扩展
知识点
Docker 镜像
概述
对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。
而 Docker 镜像(Image),就相当于是一个 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) 工具的客户端。
2、REST API用于指定程序可以用来与守护进程通信的接口,并指示它做什么。
3、一个有命令行界面 (CLI) 工具的客户端。
Docker系统架构
概述
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。
Docker 容器通过 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 multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb 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 restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted ##Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted ##Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
更新数据源
apt-get update
远程连接ubuntu系统
ubuntu系统需要安装openssh
apt-get install openssh-client
目录
etc
配置文件目录
var
存放数据库的目录
/usr/local(可自定义操作)
我们自己安装的程序 必须放置在该目录
/home(可自定义操作)
usr/local和home可以新建目录,其它目录建议不要创建目录
linux命令
lsb_release -a
查看系统版本
sudo passwd root
设置 Root 账户密码
设置 Root 账户密码
su
切换root
设置允许远程登录 Root
nano /etc/ssh/sshd_config
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password //注释此行
PermitRootLogin yes //加入此行
StrictModes yes
重启服务
service ssh restart
# 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 update
更新软件包列表
Docker 仓库
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
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,但是可以直接访问网址获取资源,可以将压缩包自动解压
如果 <源路径> 为一个 tar 压缩文件的话,压缩格式为 gzip, bzip2
以及 xz 的情况下,ADD 指令将会自动解压缩这个压缩文件到 <目标路径> 去
以及 xz 的情况下,ADD 指令将会自动解压缩这个压缩文件到 <目标路径> 去
Docker容器
查看容器
docker ps
例
docker run -p 8080:8080 --name tomcat -d -v
/usr/local/docker/tomcat/ROOT
/usr/local/tomcat/webapps/ROOT tomcat
/usr/local/docker/tomcat/ROOT
/usr/local/tomcat/webapps/ROOT tomcat
Docker 仓库
Docker 实战
示例
jar包运行部署完整示例
安装linux环境
ubuntu
参照docker安装-linux(ubuntu)
简单操作
安装ubuntu
编辑数据源(修改为阿里镜像)
vi /etc/apt/sources.list
删除全部内容并修改为(推荐1)
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb 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 restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted ##Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted ##Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
更新数据源
apt-get update
安装docker环境
安装docker
sudo apt-get install docker-ce
配置镜像源
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
之后重新启动服务
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo 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
//导入原始镜像
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 条评论
下一页