docker的基本使用

Docker

  • Docker的概述与安装
  • Docker的常用命令
  • Portainer可视化面板安装
  • 镜像原理
    • 联合文件系统
    • 分层理解
    • commit镜像
  • 容器数据卷
  • Dockerfile

Docker的概述与安装

Docker的思想来自于集装箱!通过隔离机制,可以将服务器利用到极致.
传统:开发jar,运维来做.
现在:开发打包部署上线,一套流程做完.
本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习.

比较Docker和虚拟机技术的不同:
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
每个容器间是互相隔离的,每个容器内都有属于自己的文件系统,互不影响.

docker的基本组成:
docker的基本使用_第1张图片
docker的安装(查看帮助文档):
1 , 卸载旧版本
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2, 需要的安装包(储存库)
yum install -y yum-utils
3,设置镜像的仓库
yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo(默认国外的)

这里我们使用阿里云镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4,更新yum软件包索引
yum makecache fast
5,安装dokcer
yum install docker-ce docker-ce-cli containerd.io
6 启动docker
systemctl start docker
7 查看是否安装成功
docker version

docker的工作原理:
docker的基本使用_第2张图片

Docker的常用命令

帮助命令:
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 – help # 万能命令

镜像命令
docker images 查看所有本地的主机上的镜像
docker search 在仓库中搜索镜像
docker pull 下载镜像
docker rmi 删除镜像

容器命令
docker pull centos 新建一个容器
docker run [可选参数] image
参数说明:
name 容器名字
d 后台方式交互
it 使用交互方式运行,进入容器查看内容
p 指定容器的端口
docker ps 列出横在运行的容器
exit 退出容器
Ctrl + p + Q 容器不停止退出
删除容器 docker rm 容器id
启动和停止容器的操作:
docker start 容器id 启动容器
docker restart 容器id 重启容器
docker stop 容器id 停止当前正在运行的容器
docker kill 容器id 强制停止当前容器

常用其他命令:
docker run -d 镜像名 后台启动容器
docker logs -tf --tail 10 显示日志
docker top 查看容器中进程信息
docker inspect 容器id 查看镜像的元素据
docker exec -it 容器id bashShell 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 容器id 进入容器正在执行的终端,不会启动进程
docket cp 容器id+容器地址 主机地址 拷贝文件到主机上

练习:
Docker安装Nginx

  1. 搜索镜像
  2. 下载镜像 docker pull
  3. 运行测试 docker run -d --name nginx01 -p 3344:80 nginx

Portainer可视化面板安装

Docker图形化界面管理工具!提供一个后台面板供我们操作!
docker run -d -p 8088:9000
–restart=always -v /var/run/docker.sock --privileged=true portainer/portainer
docker的基本使用_第3张图片

镜像原理

镜像是什么?
镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包扩代码,运行时,库,环境变量和配置文件.
所有的应用,直接打包docker镜像,就可以直接跑起来!

联合文件系统

联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
docker的基本使用_第4张图片

分层理解

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!
这一层就是我们通常说的容器层,容器之下的都叫镜像层.

commit镜像

docker commit 提交容器成为一个新的副本
docker commit -m=“提交的描述信息” -a=“作者” 容器id 目标镜像名:

容器数据卷

容器之间可以有一个数据共享技术!Docker容器中产生的数据,同步到本地!
这就是卷技术!目录的挂载,将我们容器内的目录,挂载到Linux上面!
总结:容器持久化和同步操作!容器间也是可以数据共享的!

使用数据卷
方式一:直接使用命令来挂载 -v docker run -it -v 主机目录:容器内目录

mysql数据持久化问题
docker的基本使用_第5张图片
具名和匿名挂载
具名挂载
docker run -d -p --name nginx01 -v juming-nginx:/etc/nginx nginx
查看卷 docker volume ls

匿名挂载
docker run -d -p --name nginx01 -v /etc/nginx nginx

总结:所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况下在使用的具名挂载.

Dockerfile

Dockerfile就是用来构建docker镜像的构建文件!命令脚本!
通过这个脚本可以生成镜像,镜像时一层一层的,脚本一个个的命令,每个命令都是一层!
基础知识:

  1. 每个保留关键字(指令)都是必须是大写字母
  2. 执行从上到下顺序执行
  3. #表示注释
  4. 每一个指令都会创建提交一个新的镜像层,并提交!

构建步骤:

  1. 编写一个dockerfile文件
  2. docker build构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(DockerHub,阿里云镜像仓库)

DockerFile的指令:
docker的基本使用_第6张图片
数据卷容器同步:
–volumes-from
例如:
docker run -it --name docker02 --volumes-from docker01 kuangshen/centos:1.0

你可能感兴趣的:(java)