MXY---Docker

MXY---Docker,第1张

MXY---Docker Docker

docker:虚拟化平台,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
docker镜像:特殊的文件系统,镜像可以打包应用的运行环境以及应用程序,可以通过 Docker 启动这个镜像,进而将应用程序在一个容器中启动运行起来。
官方镜像仓库地址为https://hub.docker.com/
容器:运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。
docker架构:C/S架构

Docker服务基本 *** 作:
1.1 启动 docker 服务 :systemctl start docker
1.2 查看 docker 状态:systemctl status docker
1.3 设置 docker 自开机:systemctl enable docker
1.4 禁用 docker 自开机:systemctl disable docker
1.5 重新启动 docker 服务:systemctl restatle docker
1.6 查看 docker 信息:docker info
1.7 查看 docker info 中的具体key信息:
docker info | grep ‘Docker Root Dir:’
1.8 停止docker 服务:systemctl stop docker
Docker 镜像加速::

cat < /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

Docker镜像 *** 作实践:
2.1 下载镜像:docker pull 镜像名
eg:docker pull hello-world
2.2 浏览镜像文件:docker images
2.3 查看镜像详情:dockers inspect 镜像名或镜像id
2.4 查看镜像历史:docker history
一个镜像由多个层(layer)组成 通过doker history命令可以列出各个层的创建信息
2.5 导出镜像文件:docker sava 镜像名 | gzip > 镜像名.tar.gz
镜像导出 导出后给他人使用
2.6 导入镜像文件:docker load < 镜像名.tar.gz
2.7 删除镜像文件:docker iamge rm 镜像名
2.8 运行镜像文件:docker run 镜像名

宿主机:安装了docker的Linux系统

Docker容器 *** 作实践:
3.1 下载镜像:docker pull centos:7
3.2 创建并启动容器:docker run -it 镜像名 bash
it — 两个参数:-i 表示交互 -t 表示终端
bash — 进入 *** 作终端 基于交互进行相关 *** 作
3.3 查看 Docker 运行中的容器:docker ps
3.4 查看 Docker 运行中的所有容器:docker ps -a
3.5 查看容器日志信息:docker logs 容器id
3.6 停止运行的容器:docker stop 容器id
3.7 重新启动容器:docker restart 容器id
3.8 进入指定容器:docker exec -it 容器id bash
3.9 删除容器:docker rm 容器id
4.0 清理处于种植状态的容器:docker prune

Docker数据管理实践:
容器中管理数据主要有两种方式:数据卷 挂载主机目录
数据卷:可供一个或多个容器使用的特殊目录 可以在容器之间共享和重用 即使容器被删除
4.1 创建数据卷:docker volume create container-vol
4.2 查看所有数据卷:docker volume ls
4.3 查看指定数据卷:docker volume inspect container-vol
4.4 启动挂载数据卷的容器:
docker run -it -v container-vol:/root centos:7 bash
把数据卷container-vol挂载到容器的/root目录
4.5 删除数据卷(使用时无法删除):docker volume rm
container-vol
4.6 清理无主数据卷:docker volume prune
4.7 挂载主机目录启动容器:docker run -it -v /usr/app:/opt/app centos:7 bash
1)/usr/app: 宿主机目录
2)/opt/app: 启动容器的目录
3)-v 用于指定挂载目录 宿主机目录不存在 Docker自动创建
4.8 查看挂载目录信息:docker inspect 容器id

镜像制作:
Dockerfile:创建新镜像时都需要有一个Dockerfile文件 这个文件中定义镜像制作过程
5.1 进入Dockerfile文件:vim Dockerfile
文件编写:i 进入编辑模式
退出 :Esc (命令行模式)+ :wq
5.2 在文件目录执行docker bulid命令:
eg:docker build -t jdk:8 .
-t 镜像标识(镜像名)
. 构建过程中从当前目录寻找文件
jdk:8 镜像名
5.3 运行JDK镜像文件:docker run -it jdk:8 bash
5.4 查询环境变量:echo $PATH
5.5 查看JDK版本信息:java -version
5.6 基于jdk镜像启动sentinel服务:
docker run -d -p 8180:8080 --name sentinel
-v /root/servers:/usr/sca
jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.1.jar
- d 表示后台运行
- p 用于实现端口映射
- name 表示启动的容器名字
5.7 打开浏览器 输入远端宿主机的ip:8180访问测试

Redis服务器:
6.1 登录 redis:redis-cli
6.2 停止 redis 服务:docker stop redis01
6.3 启动 redis 服务:docker start redis01

Docker容器互联:Docker中存在多个容器时 容器与容器之间需要经常通讯 而解决通讯方案有两种:
1)两个容器通过宿主机进行通讯
2)两个容器之间直接通过虚拟网络进行连接 但是需要我们在docer中创建网络

虚拟网络架构设计:

1)新建网络:docker network create -d bridge t-net
-d driver 网络类型 默认bridge 创建后添加容器就可通讯
2)列出所属网络:docker network ls
3)查看网络信息:docker inspect 网络id
4)创建容器:docker run -it --name app1 --network t-net ` centos:7
docker run -it --name app2 --network t-net centos:7
打开终端 基于centos:7 启动容器 同时加入到t-net网络
5)测试网络互通:ping app1/app2

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存