docker

什么是虚拟化?

是一种资源管理技术,将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。打破实体结果见的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。

什么是docker?

容器,装搭载的环境,每一个容器装的是一个操作系统

为什么要使用docker?

极大的方便环境的部署。(可以直接从网上down相关的镜像)
1、上手快,只需要几分钟的时间,就可以把自己的程序Docker化
2、职责的逻辑分类,开发人员只需要关心容器中运行的应用程序,运维人员只需要关心如何管理容器
3、快速高效的开发声明周期
4、鼓励使用面向服务的架构
5、与虚拟机相比docker启动的速度快

镜像的常用命令?

  • 查看镜像
Docker images
  • 搜索镜像(搜互联网上的镜像)
Docker search 镜像名称
  • 拉取(即下载)镜像
Docker pull 镜像名称
  • 删除镜像
删除镜像以前需要先删除容器: docker rm ‘容器名称’ | ‘容器ID’
Docker rmi 镜像id(最好使用ID)
  • 删除所有镜像
Docker rmi ‘docker images -q’

Docker 安装命令?

以下命令请手动录入,直接复制会出现错误

更新yum源至最新
Sudo yum update
将yum源设置到阿里云
Sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Sudo yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 下载docker ce版本
Sudo yum install docker-ce分ce和ee两个版本,ce是社区版,ee是企业版
Docker -v查看版本

Vi  /etc/docker/daemon.json
{
“registry.mirrors”:[“https”//docker.mirrors.ustc.edu.cn”]
}
  • 启动docker
Systemctl start docker
  • 停止docker
Systemctl stop docker
  • 重启docker
Systemctl restart docker
  • 查看docker状态
Systemctl status docker
  • 开机启动命令
Systemctl enable docker

容器的常用命令?

csharp
开机自启,创建容器时带 -restart=always
如为设置可通过update设置docker update --restart=always 容器名称
-restart=always 一直重启
No 不重启
On-failure 只有在非0状态退出时才从新启动容器;

-查看容器

Docker ps

-查看所有容器

Docker ps -a

-查看最后一次运行的容器

Docker ps -l

-查看停止的容器

Docker ps -f status-exited

-创建容器

Docker run 
	-i表示运行容器
	-t 表示容器启动后会进入命令行,交互式
	-name 为创建的容器命名
	-v 表示目录映射。宿主机的目录与容器内部的目录做一个映射。
	-d 表示的是守护式的方式运行
	-p 表示端口映射
交互式方式建立容器
Docker -It  或 docker -I -t
Docker run -it –-name=mycentos centos:7 /bin/bash
  • 创建守护式容器
Docker run -id  -–name=mycentos(name不能重复即使重名的容器已经关闭) 镜像名称:标签
  • 登录守护式容器 或者 进入启动的容器
Docker exec -it 容器名称 /bin/bash
  • 退出
Exit
  • 停止容器
docker stop 容器名称(容器id)
  • 启动容器
Docker start 容器名称(容器id)
  • 文件拷贝
Docker cp 文件名称 容器名称/路径
  • 目录挂载
Docker run -di -v 宿主机目录路径:容器目录路径 –-name=容器名称 镜像:标签
  • 查看容器的IP地址
Docker inspect 容器名称(容器ID)
Docker inspect –format{{.Networksettings.IPAddres’}} 容器名称(容器ID)
  • 移除容器
Docker rm 容器名称(容器ID)

应用部署

-Mysql部署

  • 拉取Mysql镜像
Docker pull centos/mysql-57-centos7
  • 运行容器
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=esint@123 centos/mysql-56-centos7
  • 指定日志文件宿主映射关系
docker run -d --name=mysql_master -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -v /usr/local/docker/mysql/data:/var/lib/mysql -v /usr/local/docker/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

容器和镜像的关系?

一个镜像可以构建多个容器。简单来说,镜像就像是一个类,容器就想是一个对象,一个类可以有多个对象。
如何为容器打包?
如何生成离线的镜像?
如何利用离线生成的镜像生成容器?
镜像的备份迁移?(离线)
Docker commit 容器名称 镜像名称
Docker save -o 想保存的文件名称 镜像名称
容器如何保存为镜像?(离线)
Docker commit 容器名称 镜像名称
Docker save -o 想保存的文件名称 镜像名称
如何加载镜像?(离线)
Docker load -i 保存的镜像文件名
  • 如何离线安装docker?
docker-compose是用于方便管理docker容器的工具,并非必须品,用上了会更方便一点
https://blog.csdn.net/catoop/article/details/102523847 离线安装最新版本
https://www.2cto.com/kf/201809/778643.html
https://download.docker.com/linux/static/stable/
下载.tgz包
解压
将docker文件下的二进制文件拷贝到可执行路径 例如/usr/bin/
  • Mysql的数据存在宿主机的哪个目录?
在创建容器时做好数据目录与宿主机的目录映射,不做目录映射的话,可能在宿主机上找不到Mysql的数据存放位置,在网上也同样没有搜到
  • 配置redis?
拉取redis镜像
创建redis容器:docker run -di –name=redis -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data redis –appendonly yes

什么是Dockerfile?

是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新镜像
基础镜像:ubuntu centos 操作系统级别的镜像
常用命令:

FROM image_name:tag   定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name  声明镜像的创建者(不写也没关系)
ENV key value    设置环境变量(可以写多条)
RUN command    执行某一个命令
ADD source_dir/file dest_dir/file  	将宿主机的文件复制到容器内,如果是压缩文件,会自动解压
Copy source_dir/file dest_dir/file 和ADD相似
WORKDIR path_dir    设置工作目录
  • 使用时 名称是固定的 Dockerfile
Vi Dockerfile

FROM centos:7
MAINTAINER itcast
WORKDIR /usr
RUN mkdir /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk 1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

:wq
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值