Docker

一、Iass-Paas和Saas

1、简介

什么是lass-Pass和Saas:

# Iaas: Infrastructure-as-a-Service(基础设施即服务)
	IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用
    
# Paas:平台即服务
	paaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等

# Saas:软件即服务
	-软件开发,部署,运维---》公司来做,卖给其他公司软件
    
FAAS:Function as a Service,"功能即服务"(也译作“函数即服务”)

无服务器架构 serverless

二、Docker常用命令

1、镜像站设置

- 1、设置镜像站地址  # docker默认:https://hub.docker.com --->慢
    # 设置国内镜像站(docker安装后会有 /etc/docker 文件夹)
    1)vim /etc/docker/daemon.json
    # 设置镜像站地址
    2){"registry-mirrors": ["镜像地址"]}
    # 重启docker 服务配置生效
    3)sudo systemctl daemon-reload
    4)sudo systemctl restart docker
    # 查看配置是否成功
    5)docker info
- 1、docker国内镜像站地址
    # Docker中国区官方镜像:
    https://registry.docker-cn.com
    # 网易:
    http://hub-mirror.c.163.com
    # ustc:
    https://docker.mirrors.ustc.edu.cn
    # 中国科技大学:
    https://docker.mirrors.ustc.edu.cn
    # 阿里云:
    https://cr.console.aliyun.com/
    # 腾讯云:
    https://mirror.ccs.tencentyun.com

2、启动/停止常用命令

# 启动docker
	systemctl start docker
    
# 停止docker:
    systemctl stop docker
    
# 重启docker:
    systemctl restart docker
    
# 查看docker状态:
	systemctl status docker
    
# 开机启动:
    systemctl enable docker	

# 查看docker概要信息
    docker info
 
# 查看docker帮助文档
    docker --help

三、镜像命令相关

- 1、查找镜像(建议去hub.docker.com 直接搜,更直观)
    -docker search 镜像名称  
    
- 2、拉去镜像
    docker pull centos:7
    docker pull centos  # 如果不指定标签,会下载最新
   
- 3、查看本地安装的镜像
    docker images  # 等同于 docker image ls
 
- 4、删除安装的镜像
    docker rmi 镜像ID   # 可以同时删多个 空格隔开
 
- 5、删除所有镜像
    docker rmi `docker images -q`

四、容器相关命令

  • 容器===>运行起来的镜像

  • 同一个镜像可以运行多次(多个容器)

运行容器可以指定的参数

参数 作用
-i 表示运行容器
-t 表示容器启动后会进入容器命令行。加入这个参数后,容器创建就能登录进去。即分配一个伪终端
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)
--name 为创建的容器命名,如果不写,随机生成一个名字
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
 - 1、运行容器命令(本质是两步:先创建create,后运行)
    # 运行容器的时候进行检测,如果发现本地没有就自动下载
    # -d 不会进入到容器内部
    docker run -id  
    # -i 会进入到容器内部
    docker run -it  
    # --name 给容器起别名
    docker run -id --name=MySentos centos:7
    # -v 目录映射(宿主目录:映射到容器目录)
    docker run -id --name=lqz -v /home/lqz:/lqz centos:7
    # -p 端口映射(访问宿主的80就会映射到容器的3306端口)
    docker run -id --name=mysql -p 80:3306 -e 		MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    #  netstat -nlp | grep 80  查看本机80端口占用情况
    # 以后访问宿主机80端口就等于访问容器的3306端口
    
- 2、将镜像运行起来,成为容器(根据镜像的标签或者ID)
    # 运行centos的容器,别名叫MyCentos
    docker run -id --name=MyCentos centos:7

- 3、启动容器
	docker start 容器别名/ID
    
- 4、停止容器的运行  # 通常用于-d启动的容器
	docker stop 容器别名/ID
    
- 5、查看正在运行的容器
    docker ps
    
- 6、查看所有运行过的容器  # 启动过的都会生成ID
	docker ps -a
 
- 7、查看最后一次运行的容器
	docker ps -l
 
- 8、从容器中退出  # 通常用于 -t 启动的容器
	exit  # 同时会停止容器的运行 
    
 
- 9、宿主机控制执行命令
    # docker exec 容器id 命令
    docker exec f82e8578b9b1 ls
    
- 10、从宿主机进入容器
	docker exec -it 容器的ID /bin/bash  # 进入到容器内部