赞
踩
Docker简述
Docker是一个快速交付应用、运行应用的技术:
-1.可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意linux操作系统
-2.运行时利用沙箱机制锌层隔离容器,各个应用互不干涉
-3.启动、移除都可以通过一行命令完成,方便快捷
Docker和虚拟机的差异
-Docker是一个系统进程;虚拟机是在操作系统中的操作系统
-Docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
镜像
-将应用程序机器依赖、环境、配置打包在一起
容器
-镜像运行起来就是容器,一个镜像可以运行多个容器
Docker结构
-服务端:接收命令或远程请求,操作镜像或容器
-客户端:发送命令或者请求到Docker服务器
DockerHub
-一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry
镜像主要操作
-docker images 查看
-docker rmi 删除
-docker pull 拉取远程镜像
-docker push 推送镜像到远程
-docker save 保存镜像
-docker load 加载镜像
Docker容器相关命令
-docker exec 进入容器执行命令 -it 给当前进入的容器创建一个标准输入输出终端,允许欧盟与容器交互 mn:要进入的容器的名称 bash:进入容器后执行的命令,bash是一个Linux、终端交互命令
-docker logs 查看容器运行日志
-docker ps 查看所有运行的容器及状态 -a 查看所有状态的容器
-docker run 传概念并运行一个容器 --name xxx(容器名) -p 80:80 -d nginx
-docker pause 暂停
-docker unpause 结束暂停
-docker stop 停止
-docker start 重新运行
-docker rm 删除容器 -f删除运行中
数据卷
将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
-docker volume create xxx 创建数据卷
-docker volume ls 查看数据卷
-docker volume inspect xxx 查看数据卷想起信息
-docker volume rm xxx 删除数据卷
docker run -v 数据卷:容器目录 参数挂在一个数据卷到容器目录
1 -v volume名称:容器内目录
2 -v 宿主机文件:容器内文件
数据卷挂载与目录直接挂载的
1 数据卷挂载耦合度低,由docker来管理目录,但是目录较深,不好找
2 目录挂载耦合度高,需要我们自己管理目录,不过目录容易寻找查找
DockerFile
就是一个文本文件,其中包含一个个指令,用指令来说明要执行什么操作来构建镜像。
- #指定基础镜像
- FROM Ubuntu:16.04
- #配置环境变量,jdk安装目录
- ENV JAVA_DIR=/usr/local
- #拷贝jdk和java项目包
- COPY ./jdk8.tar.gz $JAVA_DIR
- COPY ./docker-demo.jar /tmp/app.jar
-
- #安装jdk
- run cd $JAVA_DIR \
- && tar -xf ./jdk8.tar.gz \
- && mv ./jdk1.8.0_144 ./java8
-
- #配置环境变量
- ENV JAVA_HOME=$JAVA_DIR/java8
- ENV PAH=$PATH:$JAVA_HOME/bin
-
- #暴露端口
- EXPOSE 8090
-
- #入口。java项目的启动命令
- ENYPAONT java -jar /tmp/app.jar
运行 docker build -t name:1.0 //创建docker文件
DockerCompose
Docker Compose可以基于compose文件帮我们快熟的部署分布式应用,而无需手动一个个创建和运行容器。
注意
镜像仓库推送前需要把仓库地址配置到docker服务的daemon.json文件中,被Docker信任
推送镜像到私有镜像服务必须先tag,步骤如下:
1 重新tag本地镜像,名称前缀为私有仓库的地址:192.168.11.101:8080
docker tag nginx:latest 192.168.11.101:8080/nginx:1.0
2 推送镜像 docker push 192.168.11.101:8080/nginx:1.0
3 拉取镜像 docker pull 192.168.11.101:8080/nginx:1.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。