🤓
blog-article
  • Introduction
  • 面试题
    • 1. 输入url发生了什么
  • Personal Works
    • 1. 简单的Web图床
  • CSS动画笔记
    • 1.transition 属性
    • 2.transition 实例
  • css 笔记
    • 1. box-shadow 阴影
    • 2. columns 设置列宽和列数
    • 3. 伪元素after与before
  • html 笔记
    • 1. 不常用的h5标签杂记
  • webpack4
    • 1. 文档学习记录
    • 2. 加载CSS
    • 3. 加载less
    • 4. 加载sass
    • 5. 根据浏览器自动添加css前缀
    • 6. 图片文件处理
    • 7. 字体文件处理
    • 8. 引入jQuery
    • 9. 打包HTML文件
    • 10. 分离css插件
    • 11. babel简单使用
    • 12. 清理旧打包文件插件
    • 13. 拷贝静态资源
  • javascript
    • 1. js获取某年某月的天数
  • npm
    • 2. JSON.stringify()完整用法
    • 1. 入门篇
    • 2. 进阶篇
  • Node.js
    • 1. 使用koa-body中间件后ctx.request.body内容为空
    • 2. uni-app使用Node+Koa2接收上传的文件
  • SQL
    • 1. 查询
    • 2. 插入
    • 3. 修改
    • 4. 删除
    • 5. 期末复习
  • Git
    • 1. git add命令后出现another git process...问题
    • 2. 将文件从暂存区移除
  • vue-cli
    • 1. vue-cli(脚手架)引入vue.config.js文件后热更新失效,每次保存都会刷新页面
  • uni-app
    • 1. uni-app中不使用scroll-view组件,监听页面滑直底部事件
  • 设计模式
    • 创建型模式
    • 单例模式
    • 工厂模式
    • 抽象工厂模式
  • Spring boot
    • 1. 使用自定义参数注解获取 token 中User数据
  • IDEA
    • 1. 设置maven项目的默认配置
  • Linux
    • 1.常用命令
    • 2.常用基础命令2
    • 3.linux目录介绍
    • 4. vi编辑器使用
    • 5.用户管理
    • 6. 文件属性与权限操作
    • 7. 文件归档与解压缩
    • 8. gcc的基本用法
    • 9. gdb调试器的基本用法
    • 10. Makefile基本用法
  • shell
    • shell与crontab定时器的结合
    • 1. shell 变量与常见符号
    • 2. shell中的四则运算符
    • 3. 条件判断
    • 4. 输入输出
    • 5. 输出彩色的内容
    • 6. 流程控制
    • 7. 函数
  • Docker
  • 嵌入式系统给结构及原理
  • 学校课程笔记
    • 1. java EE 复习
    • 2. 马原复习论述题
    • 3. 嵌入式软件技术复习
    • 4. 嵌入式操作系统复习
    • 5. 马原选择题
    • 6. 马原辨析题
    • 7. 马原材料题
    • 8. 计网学习笔记
    • 9. 计网复习
      • 1. 第一章
Powered by GitBook
On this page
  • Docker
  • Dockerfile
  • 镜像分层结构
  • 构建java环境
  • 构建nginx镜像
  • mysql镜像
  • 网络

Was this helpful?

Docker

Docker

  • docker images:查看本地镜像

  • docker search sourceName :搜索镜像

    • docker search --filter "is-official=true" sourceName:过滤官方镜像

    • docker search --filter "is-official=true" node:官方node镜像

    • docker search --filter stars=10 sourceName:星星大于10的指定镜像资源

  • docker pull sourceName :下载指定资源镜像

    • docker pull sourceName:版本号

    • docker pull centos:7 :下载centos7镜像

  • docker tag centos:7 mycentos:first :修改镜像名称(小写)

  • docker rmi sourceName :删除本地镜像

    • docker rmi centos:7 :删除centos7镜像

  • docker run -it sourceName|imageId:tag :启动容器(不加:tag 默认运行本地最新的:latest 没有就远程下载)

    • -i :以交互模式运行容器

    • -t :为容器重新分配一个终端

    • -d :后台运行

  • docker ps :查看运行的容器

    • -a :显示所有(包括已经关闭的)

  • docker stop ContainerId:停止后台运行的容器

  • docker run -itd --name=testcentos centos:7 :指定运行容器的name,方便停止

    • docker stop testcentos: 用name停止

    • docker start testcentos: 启动

    • docker restart testcentos: 重启

    • dokcer rm testcentos :删除容器(必须停止的容器)

      • -f :强制删除

    • docker inspect testcentos: 查看容器的详细信息

  • docker exec -it mycentos /bin/bash:进入后台运行的centos容器

  • docker stop $(docker ps -q):停止所有的运行中的容器

    • docker ps -q:查询所有运行中容器的id

    • docker ps -aq:所有容器的id

  • docker start ${docker ps -a -q}:运行所有容器

  • docker cp /root/test.txt imageName:/home/ :拷贝本地文件/root/test.txt到容器中的/home/目录下

  • docker cp imageName:/home/test.txt /root :拷贝容器中的文件到宿主机上

  • docker run -itd -v 要挂载目录:容器中的目录 imageName:tag:挂载指定目录到指定容器中

  • docker commit -a "author" -m "description" containerId myImageName:Tag :基于现有的镜像创建自己的镜像

    配置阿里云加速器加速镜像下载(可以去阿里云控制台寻找专属的)

    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://v2ltjwbg.mirror.aliyuncs.com"]
    }
    EOF
    systemctl daemon-reload
    systemctl restart docker

Dockerfile

使用Dockerfile构建镜像

dockerfile

# this is a dockerfile
FROM centos:7 # 基于centos:7镜像构建
MAINTAINER sugar engineerzjl@foxmail.com #作者信息
RUN echo "start build image" # 运行命令
WORKDIR /home/sugar #工作目录
COPY test.txt /home/sugar # 复制文件
RUN yum install -y net-tools # 运行安装命令

开始构建末尾的一点代表当目录

docker build -t mycentos:2 .

常用指令

FROM    #基于哪个镜像
MAINTAINER 作者信息
COPY    #复制文件(单纯的复制,不做其他操作)
ADD     #复制文件如果是 .tar.gz 还会解压
WORKDIR #工作目录
ENV     #设置环境变量
EXPOSE  #暴露容器端口
RUN     #执行命令  作用于镜像层面

# 有多条时 在容器启动时执行最后一条
ENTRYPOINT  #执行后面的命令 作用于容器层面
CMD     #指定后面的命令 作用于容器层面 (会被传参覆盖)
  docker run imageName:tag params

命令格式

  • shell:RUn echo "hello world

  • exec:RUN ["yum","install","-y","net-tools"]

镜像分层结构

查看镜像的构建历史

docker history imageName:tag

镜像只读,容器可读可写

构建java环境

解压
tar -xf jdkxxxx
移动 jdk /usr/local
mv jdk /usr/local/jdk
配置环境变量
vi /etc/profile
加入已下内容在末尾
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

生效环境变量
source /etc/profile
检验
java -version

拷贝tomcat到指定目录中然后在bin目录中找到startup.sh启动
需要关闭防火墙才能访问(也可放行端口)

dockerfile构建

FROM centos:7
ADD jdk-8u211-linux-x64.tar.gz /usr/local
RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk8
ENV JAVA_HOME=/usr/local/jdk8
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-8.5.35.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

启动

docker run -itd -p 8081:8080 -v /root/tomcatWebapps:/usr/local/tomcat/webapps/ROOT centos:java /bin/bash

构建nginx镜像

dicjerfile

FROM centos:7
ADD nginx-1.16.0.tar.gz /usr/local
COPY nginx_install.sh /usr/local
RUN sh /usr/local/nginx_install.sh
EXPOSE 80

shell

#!/bin/bash
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
cd /usr/local/nginx-1.16.0
./configure --prefix=/usr/local/nginx && make && make install

运行

docker run -itd -p 8081:80 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"

经测试可以后台启动容器后 进入容器再打开nginx

docker exec -it containerId /bin/bash
cd /usr/local/nginx/sbin
./nginx

mysql镜像

拉取

docker pull mysql:5.7

后台运行

docker run --name test-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=a123456 -d mysql:5.7

进入容器(并设置字符编码)

docker exec -it test-mysql env LANG=C.UTF-8 /bin/bash

网络

  • bridge 桥接

  • host 主机

  • none

Previous7. 函数Next嵌入式系统给结构及原理

Last updated 4 years ago

Was this helpful?