Docker基础知识

一、 Docker简介【 虚拟化容器技术,Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的运行环境,容器之间互相隔离

  1. 一个开放源代码的软件项目,基于Go语言
  2 docker可以让开发打包一个他们的应用以及依赖包到一个轻量级,可移植的容器中
  3. 容器打包好,可发布到任意流行的Linux机器上,也可实现虚拟化
  4. 容器是完全使用沙箱机制,相互之间不会有任何接口
  5. 多用于部署项目环境,测试环境,web应用的自动打包和发布,部署和调整数据库
二、 docker与VMware的区别
  1. docker内存比虚拟机小
  2. 速度docker比虚拟机快
三、docker的组成
  1. 镜像 - 类似于python里面的类,静态的,一般不会直接使用
  2. 镜像仓库 - 存放镜像的地方
  3. 容器 - 通过镜像创建,相当于实例的概念,是动态的,可访问的

 四、Docker指令 操作

| 指令 | 说明 |
| :----------------------------------------------------------: | :----------------------------------: |
| docker -v | 查看docker版本 |
| docker version | 查看docker服务端与客户端版本详情 |
| docker --help | 查看命令 |
| system start docker | 启动docker进程 |
| system stop docker | 关闭docker进程 |
| system restart docker | 重启docker进程 |
| system enable docker | 开机自启动docker进程 |
| system status docker | 查看docker进程状态 |
| docker stop firewalld | 关闭防火墙 |
| docker search tomcat/sql/redis... | 搜索镜像【先本地后官网默认地址】 |
| docker rmi tomcat/sql/redis... | 删除镜像【镜像有版本需要指定版本号】 |
| docker stop myTomcat[容器的名称/容器的id的前几位] | 停止容器 |
| docker rm myTomcat[容器的名称/容器的id的前几位] | 删除没有运行的容器 |
| docker rm -f myTomcat[容器的名称/容器的id的前几位] | 删除在运行的容器 |
| 1.先停止容器 2. docker rm -f $(docker ps -a -q) | 删除所有的容器 |
| docker rmi -f $(docker images -q) | 删除所有镜像 |
| docker logs -f --tail 10 myTomcat[容器的名称/容器的id的前几位] | 打印log日志[打印前10行] |

五、Docker镜像操作 - 使用docker搭建一个tomcat/mysql/redis

  1. 查看本地是否存在镜像

    docker image

  2. 搜索镜像 【先本地 - 官方默认】

    docker search

  3. 获取对应的镜像 【可以默认官方仓库,也可以只用docker加速器】
    docker pull tomcat/sql/redis【不注明版本则表示拉去最新版本】
    docker pull tomcat:7【表示拉取的镜像为版本为7的tomcat镜像】
    docker加速器的使用【可以进入阿里云官网 - 容器镜像服务获取相关官网镜像仓库】
  4. 创建容器 【前提是本地要具有镜像】
    docker create --name myTomcat[镜像名称] tomcat【这一步只是创建了容器,但是并没有运行】
  5. 查看容器
    docker ps  多个容器查看【docker ps|grep tomcat[关键字]】 查看所有容器【docker ps -a】

  6. 启动容器
    docker start myTomcat[容器的名称/容器的id的前几位]

  7. 运行容器
    docker run -id[-i表示运行容器,-d表示守护进程-后台运行] -p[端口映射] 8080[宿主机端口]:8080[容器端口] -v[目录映射-挂载] /usr/ly[宿主机目录]:/usr/local/tomcat/webapps[容器目录] tomcat

六、容器项目搭建好,但是访问不成功的原因
    - 容器是否正常运行 docker ps
    - 防火墙是否关闭 docker status firewalld
    - 端口号是否正常/被占用 netstat -ntlp
    - 备注【如果是云服务器,需要开放端口号】
七、轻量级图形页面管理之portainer  

  1. 查看portainer镜像
      [root@localhost ~]# docker search portainer  2. 选择喜欢的portainer风格镜像,下载

      [root@localhost ~]# docker pull portainer/portainer
  3. 启动dockerui容器
      [root@localhost ~] docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
  4. 浏览器访问http://宿主机IP:端口号【9000】

八、使用dockerfile创建镜像

  第1种:使用war打包镜像

    1. 当前路径,新建一个文件
        vi dockerFile-tomcat
    2. 编辑dockerFile-tomcat
        FROM tomcat #拉起基础镜像
        COPY Shopping.war /usr/local/tomcat/webapps #把项目文件放进去
    3. 使用ftp把Shopping.war 放到当前目录下
    4. 打包镜像
        docker build -f dockerFile-tomcat -t sqTomcat:v1 .

  第2种:使用jar打包镜像

    1、新建一个文件
        vi dockerFile-sq
    2. 编辑dockerFile-sq
        FROM java:8#项目里最好指定版本
        WORKDIR /opt/docker/images/metabase/
        ADD sq.jar sq.jar
        EXPOSE 9999 #开放一个访问的端口
        CMD java -jar sq.jar#运行java -jar xx.jar
    3. 打包镜像
        docker build -f dockerFile-sq -t sq:v1 .

posted @   ly_123  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示