【docker的使用】

docker的基础介绍

什么是虚拟化

​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

​ 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用

​ 虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等

名词解释
-kvm,vmware---》装在服务器上---》虚拟化出一个个的机器(虚拟机)---》机器上可以装操作系统
-openstack,阿里飞天---》管理,点点点,创建释放虚拟机

-docker:容器技术
-k8s:多机容器管理(多机容器编排)
什么是Docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护
Docker 的基础是 Linux 容器(LXC)等技术
用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单:把docker容器当成一个虚拟机装了一个操作系统

docker的好处
-轻量级
-统一环境
-可以快速扩展到多台机器
容器与虚拟机比较
-docker 没有操作系统一层,更快,更轻量级

docker的组件介绍

在这里插入图片描述

docker 是cs架构:数据通信使用http协议的resful

  • 服务端:docker 主进程,负责接受docker 客户端传过来的命令
  • Images:重点,镜像,一堆文件:当成虚拟机上装的操作系统的iso文件(操作系统+某个软件)
  • Containers:重点:容器,运行的:当成在虚拟机上装了操作系统后开机了(centos系统,centos+redis)
  • 网络:网络模式,容器间通信,容器跟宿主机通信 -Volumes:数据卷,存放容器中软件,文件的地方
  • Registry:远程仓库,镜像是从远程仓库下载下来的

docker的下载与安装

镜像加速

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://x1566319.mirror.aliyuncs.com"]
}

重启

镜像的相关命令

远程仓库下载的,官方的https://hub.docker.com/
1 下载镜像
docker pull下载
centos:centos7  镜像名字:版本/tag
docker pull centos:centos7
docker pull  redis  # 默认下最新的latest
2 查找镜像—》是否是官方,点赞数大小
-方式一网址搜:https://hub.docker.com/
-方式二: docker search centos
3 查看本地镜像

docker images

4 镜像删除
docker rmi 镜像名字:tag/镜像id
5 一次性删除所有镜像

docker rmi docker images -q

容器的相关命令

1 查看正在运行的容器
docker ps
2 查看所有容器,无论停止还是运行
docker ps -a
3 创建容器并启动(创建容器,运行容器)
docker run -id --name=mycentos -v 宿主机路径:容器路径 -p 宿主机端口:容器端口

-i:表示运行容器 镜像名字:tag
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
–name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

docker run -it centos:centos7
-启动容器,自动命名,进入到容器内部,如果exit退出,容器也就结束了,不运行了
-因为容器运行必须有一个前台进程夯住阻塞,前台进程结束,容器也就结束了
docker run -id --name=mycentos7 centos:centos7
-进入到容器内部操作
	-ssh连过去(需要容器支持,安装ssh,启动,监听22端口),一般不用
    -docker exec -it 96a5 /bin/bash # 本质是在96a5容器上执行一下 bash命令
docker run -id --name=mycentos2 -v /root/lqz:/home/lqz centos:centos7
-以后再容器内部操作lqz文件夹和在宿主机操作是一样的

docker run -id --name=myredis -p 6380:6379 redis
-以后直接链接宿主机的6380就相当于链接容器的6379端口
mysql做目录映射,创建数据库,删除容器操作,再用别的容器运行,数据库还在
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
创建my.cnf配置文件
touch /home/mysql/my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

max_connections=1000

docker run  -di -v /home/mysql/data/:/var/lib/mysql -v       /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
3 停止容器
docker stop 容器id
启动容器
docker start 容器id
4 删除容器:必须先停止再删
docker rm 容器id 容器id 容器id
5 文件拷贝
从宿主机copy文件到容器
docker cp 需要拷贝的文件或目录 容器名称:容器目录
 docker cp lqz.txt ff78cece7d61:/home
从容器copy文件到宿主机
docker cp 容器名称:容器目录 需要拷贝的文件或目录
docker cp ff78cece7d61:/home/lqz.txt /root/lqz.txt
6 查看容器详情,ip地址
docker inspect ff78cece7d61
docker inspect --format='{{.NetworkSettings.IPAddress}}' ff78cece7d61
netstat 命令没有
yum install net-tools 安装

docker 部署应用

运行mysql
docker run -id -p 3306:3306 --name=ly_mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:latest

④ 操作容器中的mysql

        进入mysql容器内部

docker exec -it c_mysql /bin/bash
        登录mysql:

mysql -uroot -p123456
        mysql容器中的操作:

//观察mysql中的目录:
show databases;
 
//创建一个database
create database db1;
运行redis
docker run -di --name=myredis5 -v /root/lqz/redis.conf:/data/redis.conf   -p 6379:6379 redis redis-server /data/redis.conf

vim redis.conf
bind 0.0.0.0
daemonize no
protected-mode no
requirepass 123456

运行nginx
docker run -di --name=mynginx -p 80:80 nginx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值