Docker快速入门 二(Iass-Paas和Saas,Docker常用命令,镜像命令相关,容器相关命令,容器操作)
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 # 进入到容器内部
五、容器操作
- 1、文本拷贝
# 容器文件拷贝到宿主机(在宿主机执行)
# docker cp 容器名称/id:容器目录 需要拷贝的文件或目录
docker cp 50cc:/root/a.txt /root/b.txt
# 宿主机文件拷贝到容器(在宿主机操作)
# docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp /root/a.txt 50cc:/root/b.txt
- 2、查看容器配置
docker inspect 容器名称 # 查看容器的详细描述,很多
# 过滤详细的配置
docker inspect --format='{{.NetworkSettings.MacAddress}}' 容器名称(容器ID)
- 3、删除容器(删除已停止的容器)
docker rm 容器id # 删除单个
docker rm `docker ps -a -q` # 删除所有停止的
六、补充
- 多个容器之间是可以ping通过的
- 无状态的服务
- mysql redis
- uwsgi+django