Docker入门到摔门

1、Docker简介

1.1、Docker和VM的区别

  • VM是硬件虚拟化技术,使用HypeVisor将硬件资源划分为虚拟资源。
  • Docker是操作系统虚拟化技术,将系统资源划分为虚拟资源。

1.2 优势

虚拟机需要使用额外的开销,容器并不是完整的操作系统,占用资源少,启动更快。

2、Docker 安装

我是参照这篇博客安装的,当然也有官方文档教程

安装完,执行docker命令 出现错误提示:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 

解决办法:

$ systemctl daemon-reload
$ sudo service docker restart
$ sudo service docker status (should see active (running))
$ sudo docker run hello-world

配置镜像加速:

# 修改 /usr/lib/systemd/system/docker.service 启动脚本
vim /usr/lib/systemd/system/docker.service 
# 在dockerd后面加参数
ExecStart=/usr/bin/dockerd --registry-mirror=http://hub-mirror.c.163.com

3、镜像

镜像是一种构建时结构,容器是一种运行时结构。

3.1 镜像结构

镜像分层
镜像由一个或者多个只读镜像层构成,当多个镜像层堆叠在一起,就构成了一个完整的镜像。

4、运行容器

利用容器启动一个web服务器

 docker container run -it --name webserver -p 8090:8080 nigelpoulton/pluralsight-docker-ci /bin/bash
  • -it 会将当前终端连接到容器,并且指定运行在docker中的容器
  • –name 指定容器名
  • -p 将虚拟机的端口映射到容器8080端口
    在这里插入图片描述

如果80端口没被占用不出意外,访问ip+端口 会出现一下页面;
在这里插入图片描述

4.1 docker 常见命令

  • docker image pull : 拉取镜像

  • docker image ls 查看已经拉取的镜像

  • docker image prune 移除全部悬虚镜像

  • docker search xxx 搜索镜像

  • docker image rm 镜像id 删除镜像

  • docker image inspect 查看镜像元数据

  • 退出Shell终端与容器的连接 Ctrl + PQ

  • 运行docker容器 docker container run

  • 停止容器 docker container stop

  • 删除容器 docker contaner rm

  • 查看所有运行容器的状态 docker container ls 等价于 docker ps

  • shell连接到一个运行中的主机 decker container exec
    在这里插入图片描述

4.2 docker 运行mysql

#安装mysql镜像
docker container run -it --name mysql -p 3309:3306 mysql:5.7

5 应用容器化

容器就是为应用而生,容器能够简化应用的构建,部署和运行过程。
步骤:

  • 编写应用代码 如果使用java ,则打包成jar包
  • 编写Dockerfile文件
  • 执行Docker image build 命令
  • 等待Docker将应用程序构建到Docker镜像中

5.1 Dockerfile 编写

命令介绍

  • FROM 指定基础镜像
  • LABEL 指定当前镜像的维护者
  • COPY . /SRC 将应用文件从构建上下文复制到当前镜像中
  • ADD 作用通COPY 但是能访问网络资源,能够自动解压压缩文件
  • EXPOSE 暴露端口
  • ENTRYPOINT 在镜像运行成容器时,要执行的命令
  • CMD 可以被docker run 命令覆盖,ENTRYPOINT不能被覆盖。
    完整的Dockerfile文件
# FROM指定基础镜像
FROM java:8
# ADD COPY 都是把外部文件放到镜像中去,但是ADD可以访问网络资源,可以把压缩包解压成文件夹。
ADD springbootDemo-0.0.1-SNAPSHOT.jar
# EXPOSE 暴露镜像的端口
EXPOSE 8080
# ENTRYPOINT 在镜像运行成容器时,要执行的命令
ENTRYPOINT ["java","-jar","/springbootDemo-0.0.1-SNAPSHOT.jar"]
# ENV 指定环境变量

构建镜像
docker build -t evan-springboot-demo:latest .在这里插入图片描述
构建成功:
在这里插入图片描述
运行springboot-demo容器:

docker container run -it --name springbootdemo -p 8080:8080 evan-springboot-demo /bin/bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值