docker 学习,安装,部署

本文介绍了Docker的出现原因,如解决开发和运维中环境不一致、升级困难等问题。Docker通过隔离和打包应用环境实现快速交付和部署。文章详细讲解了Docker的历史、核心思想、与虚拟机的区别,以及Docker的安装步骤。此外,还探讨了Docker的工作原理、常用命令,并给出了Docker部署nginx和tomcat的示例。
摘要由CSDN通过智能技术生成

docker 学习

docker 为什么出现

没有docker传统开发的问题

  1. 开发,上线两套环境,对开发和运维产生问题
  2. 版本更新,导致服务不可用
  3. 环境配置麻烦
  4. windows开发和Linux服务器不一样
  5. 多个应用端口冲突,配置冲突
    通过docker把项目和环境捆绑起来,解决以上问题
    java -jar(环境) 打包项目带上环境(镜像)
    运行镜像。

使用Docker的好处

应用更快速的交付和部署

传统:帮助文档,安装程序
docker :打包镜像发布测试

更便携的升级

环境更方便的升级
更简单的系统运维
开发测试环境高度一致。
充分利用环境

docker核心思想

隔离,分开包装,类似集装箱,每个箱子互相隔离

docker 历史

  1. 2010,dotcloud公司 pass的云计算服务,LXC有关的容器技术,将容器技术称为Docker
  2. 2013年,Docker开源
  3. 2014年,Docker1.0发布

Docker是基于GO语言的开源项目
文档地址:https://docs.docker.com/
镜像仓库地址:https://hub.docker.com/

Docker和虚拟机技术的不同

  1. 传统虚拟机虚拟出一套硬件,运行一个完整的操作系统,相当于一台新的设备
  2. 容器直接运行在宿主机的内容,容器没有自己的内核
  3. 每个容器相互隔离,每个容器内都有一个属于自己的文件系统

Docker安装

Docker基本组成

客户端,服务器,仓库
**镜像(image):**一个模版,通过这个模板来创建容器服务
比如tomcat镜像-》 Docker run后 产生一个tomcat容器(提供服务器),通过景象可以创建多个容器
容器(repository):独立运行一个或者一组应用,启动,停止,删除
仓库(repository):仓库存放镜像的地方。
dockerhub,阿里云,腾讯云

安装Docker

docker-ce 社区版
docker-ce-cli
containered.io

docker默认工作路径
/var/lib/docker

以ubuntu 18.04为例 安装docker

# 1.卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2.更新apt索引
sudo apt-get update
# 3.以http方式获取仓库
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
# 4.添加Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
# 5.添加仓库
 sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
# 6.下载Docker 引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 7.更新镜像源,因为Docker 默认源为Docker hub,国外网站下载慢
#   阿里云主机可以去用阿里镜像服务,笔者服务器为腾讯云主机,使用腾讯源加速
sudo vim /etc/docker/daemon.json
#创建daemon.json文件,并插入以下内容
{
"registry-mirrors": [
  "https://mirror.ccs.tencentyun.com"
]
}
#  重启docker 即可
# 8.跑一个helloworld
sudo docker run hello-world
# 若成功,则安装完成

docker工作原理和命令

-典型的cs结构,docker的守护进程运行在主机上,通过socket从客户端访问
DockerServer 接收到 DockerClient指令,就会执行命令

Run的流程和运行原理

Docker run — 本机寻找镜像–运行/远程拉取镜像-运行

Docker常用命令

  1. 帮助命令
docker version //显示docker版本
Docker info //显示docker的具体系统信息
Docker help //帮助信息
  1. 镜像命令
docker images 查看所有本地主机上的镜像
# --标签说明
repository 镜像的仓库元
tag 标签
image id 镜像的id
created  镜像的创建时间
size    镜像的大小
# 可选参数
-a		
-f		过滤
-q		只显示镜像的id
docker search 搜索镜像
docker -search mysql --filter =STARS= 3000  搜索stars大于3000的镜像
docker pull 下载镜像,分层下载
  1. 容器命令
# 新建容器并启动
docker run[可选参数] image
可选参数
--name="" 容器名字 #便于后面管理
-d  后台运行
-it 使用交互方式运行,进入容器查看内容
-p		指定容器的端口 
-p ip:主机端口:容器端口
-p 		主机端口:容器端口()
-P		随机制定端口
# 启动,测试
docker run -it ubuntu /bin/bash
exit 退出
# 列出所有的容器
docker ps -a
# 列出正在运行的容器
docker ps 
-n=1 显示最近一个创建的容器
-q		只显示容器的编号
ctrl +P+Q 不停止退出容器
# 删除容器
docker  rm 容器id
docker rm -f  $(docker ps -aq) # 递归删除所有容器
# 启动和停止容器
docker start 容器id
docker  restart 容器id
docker stop 容器id
docker kill 容器id
  1. 常用其他命令

    # 后台启动
    docker run -d 镜像名
    # 但 docker ps 查看不到,因为docker 容器使用后台运行,就必须要有一个前台进程,docker 发现没有应用,就会自动停止
    容器启动后,发现自己没有提供服务,就会立刻停止。
    # 查看日志
    dockerlogs
    docker logs -f -t --tail 指定行数 容器id
    # 参数列表
    -t 时间戳
    -f follow  跟随最新
    --tail number 显示日志条数
    # 查看容器中的进程信息
    docker top 容器id
    # 查看镜像元数据
    docker  inspect 容器id
    # 进入当前正在运行的容器
    docker exec -it 容器id #以交互模式进入容器,进入容器开启新的终端
    docker attach  容器id #进入正在运行的命令行,正在执行当前的代码,不会启动新的进程
    # 从容器内拷贝文件到主机
    docker exec -it 容器id #以交互模式进入容器,进入容器开启新的终端
    docker attach  容器id #进入正在运行的命令行,正在执行当前的代码,不会启动新的进程
    

Docker 部署nginx

# 1.搜索镜像
docker serach nginx
# 2.下载镜像
docker pull nginx
docker run -d -name naginx01 -p 80:8001 nginx
# 3.运行测试
curl localhost:80

Docker 部署tomcat

docker run -it --rm tomcat:9.0
# --rm 一般用于测试,用完就被删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值