首页 > 其他分享 >docker-

docker-

时间:2023-04-12 20:26:35浏览次数:39  
标签:容器 映射 宿主机 镜像 docker 目录

1.Iaas

IaaS: Infrastructure-as-a-Service(基础设施即服务)。
第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。

但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。

比如我们只和一家公司进行服务器硬件的合作,这家公司负责服务器的租用和硬件的维护,他们提供的就是Iaas服务。例如私有云服务。

2.PaaS

第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。比如有家公司开发好了应用,有的公司会专门提供服务器并且装好mysql等软件这样的一个平台,直接将项目部署在上面即可。

PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。

例如阿里云就是这种类型的公司。

3.SaaS

第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入,也就是提供了软件服务。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。

你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。

应用:比如政府应用、超市结账系统。

4.docker启动、配镜像站

1.查看docker状态。inactive表示未启动

systemctl status docker

2.启动docker

systemctl start docker

3.如果我们要下载镜像需要去远程仓库(在国外),速度较慢,地址是:https://hub.docker.com/ 。我们为了提高速度需要设置国内镜像站,我们配置阿里云镜像站:

cd /etc/docker/  # 首先切换到etc目录下的docker目录下

然后需要在阿里云中创建一个实例,在docker目录下需要建一个daemon.json目录:
image

vim daemon.json

image
image
4.再依次执行下面两句话,重启docker服务,就可以成功配好加速站:

sudo systemctl daemon-reload
sudo systemctl restart docker

5.启动与停止常用命令

1.启动docker

systemctl start docker

2.停止docker:

systemctl stop docker

3.重启docker:

systemctl restart docker

4.查看docker状态:

systemctl status docker

5.开机启动:

systemctl enable docker

6.查看docker概要信息

docker info

7.查看docker帮助文档

docker --help

6.镜像相关命令

1.查找镜像

docker search 镜像名称

建议去hub.docker.com 直接搜,更直观
image
image
2.拉取镜像:搜索之后选择合适的镜像,点击tags,复制命令到linux命令行,即可下载:
image

# centos7版本
docker pull centos:centos7

image
不写版本默认下载最新:

docker pull redis

3.查看本地镜像

docker images

CREATED指的是镜像创建的时间
image
4.删除镜像

docker rmi 镜像ID   # 可以同时删多个

5.删除所有镜像

# 查出所有镜像的id号,-q是只拿id号
docker rmi `docker images -q`

7.容器相关命令

镜像运行起来就是容器,并且一个镜像可以运行成多个容器
1.查看正在运行的容器

docker ps

2.查看所有容器

docker ps -a

3.查看最后一次运行的容器

docker ps -l

4.运行容器(其实是两步,创建容器:create,运行容器:run)
如果容器没有创建,直接执行run,就会创建并运行
run的命令有很多参数:
i:表示运行容器
t:表示容器启动后会进入容器命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)

# 命令可以简写
docker run -it  # 创建并进入容器
docker run -id  # 创建不进入容器

name :为创建的容器命名,如果不写,随机生成一个名字
v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射(举例:宿主机上运行的mysql容器监听端口是容器中的3306端口,通过映射将容器中的3306端口映射到本机,这样容器中的mysql监听的就是本机的3306端口)
5.启动centos容器:

#  要求启动之后直接进入容器,并且给容器起名mycentos
docker run -it --name=mycentos centos:7

image
目前操作就相当于装了一台虚拟机,装上了centos。我们依然可以在该centos系统中装上mysql等软件,类似套娃的操作。容器中的软件都在容器中,在宿主机上找不到,但是会占用宿主机的内存。目前该容器中还没有vim的操作,如果想要实现vim的操作需要再装上vim软件:

yum install vim -y

6.容器退出:

exit

image
7.启动容器,不进入

docker start 容器名

image
8.进入到容器内部(本质并不是进去,而是让容器执行命令,返回结果)

docker exec 容器id 命令
docker exec 21b790a1eafc ls  # 查看id为21b790a1eafc容器内所有文件夹

image
我们也可以通过分配交互式命令行进入容器:

docker exec -it 21b790a1eafc /bin/bash

/bin/bash命令相当于进入/bin/bash的命令窗口,再执行一次相当于又进入了一层/bin/bash的窗口:
image

8.容器目录映射(映射之后目录下的内容都会同步)

v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个。-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
我们首先在宿主机/home/目录下创建一个目录ccc

cd /home/  # 切换到/home/目录下
mkdir ccc
cd ccc  # 切换到ccc目录下

image
在ccc目录下创建一个文件q.txt,并且在第一行写入内容:

cd ccc  # 切换到ccc目录下
touch q.txt  # 创建一个q.txt的文件
vim q.txt  # 进入到q.txt并且写入内容,按esc,:wq保存退出
pwd  # 查看当前路径,结果:/home/ccc

image
然后执行目录映射,冒号前的路径是宿主机映射的路径,冒号后是容器映射的路径。容器名不能和已创建的容器重名,也就是迁移的容器必须还没有被创建出来,执行完映射命令之后会自动创建

docker run -id --name=centos3(容器名) -v /home/ccc:/ddd centos:7

image
进入到centos3容器:

docker exec -it 2c8d3bbe9279 /bin/bash  # 进入到容器
cd ddd  # 切换到ddd目录下
cat q.txt  # 查看q.txt文件

image
说明通过映射之后宿主机内的文件和容器上的文件是同步的。不管谁在宿主机上还是容器中修改q.txt,在宿主机和容器中查看都会变化:
image
image

9.容器端口映射

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

docker run -id --name=mysql11 -p 81:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
#  意思是本机的81端口映射到mysql容器中的3306端口。并且本机mysql连接容器中的mysql时输入密码是3306

image

标签:容器,映射,宿主机,镜像,docker,目录
From: https://www.cnblogs.com/ERROR404Notfound/p/17309964.html

相关文章

  • Ubuntu和Centos设备出厂后添加给普通用户docker权限
    Ubuntu#查看用户组group#将当前普通用户加入docker用户组,执行命令:sudousermod-aGdocker{用户账号}#如果提示Usingdefaulttag:latestGotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:Post"http://%2F......
  • docker02 设置镜像 启动停止 镜像容器相关命令
    今日内容详细目录今日内容详细1什么是laas-Paas和Saas2docker启动设置镜像2.1启动与停止常用命令3镜像相关命令4容器相关命令1什么是laas-Paas和SaasIaas:Infrastructure-as-a-Service(基础设施即服务)IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护......
  • docker2
    今日内容1什么是Iaas-Paas和SaasIaas:Infrastructure-as-a-Service(基础设施即服务)IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用Paas:平台即服务paaS公司在网上提供各种开发和分发应用的......
  • Docker快速入门 第一篇
    目录Docker容器一、前言1、什么时虚拟化2、cocker是什么3、容器与虚拟化的区别4、Docker的概念二、安装dockerDocker容器一、前言1、什么时虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转......
  • Docker快速入门 第二篇
    目录Docker一、Iass-Paas和Saas1、简介二、Docker常用命令1、镜像站设置2、启动/停止常用命令三、镜像命令相关四、容器相关命令Docker一、Iass-Paas和Saas1、简介什么是lass-Pass和Saas:#Iaas:Infrastructure-as-a-Service(基础设施即服务) IaaS公司会提供场外服务器,存储......
  • 什么是Iaas-Paas和Saas,Docker镜像与容器,docker 启动设置镜像,docker启动与停止常用命令
    什么是Iaas-Paas和Saas,Docker镜像与容器,docker启动设置镜像,docker启动与停止常用命令,镜像相关命令,容器相关命令什么是Iaas-Paas和Saas#Iaas----->Infrastructure-as-a-Service(基础设施即服务) Iaas公司会提供场外服务器,存储和网络硬件,可以租用场外的服务器。节省了维护......
  • Docker部署Jekyll
    1.起因前两天终于下单买了个域名,10年的使用期限。既然有了域名,那自己的博客就可以搞起来了。现在博客的记录用的是Jekyll+GithubPages,所以决定之后自己的博客网站也采用Jekyll来部署实现,为了之后的维护、升级,决定采用docker来部署Jekyll。2.部署docker-compose.yaml文件内......
  • 对Docker容器进行取证 CSAW CTF 2022 DockREleakage
    题目信息这是一道非常简单的题目意思是在构建docker时,有些东西泄露了,需要我们在里面找到flag开始我们下载附件,然后解压压缩包tar-xvfdockREleakage.tar.gzx:提取v:显示所有过程f:指定文件这里有一些json文件,是docker构建时的核心文件,我们打开看看都是一行,读起来很不方便,我们格式化......
  • docker----( )
    昨日回顾#1flask-sqlalchemy -flask中集成sqlalchemy -session:要并发安全-建立表模型,集成Base-字段,字段参数,统统要导入-flask-sqlalchemy:封装了一个类,只需要实例化得到对象 -配置信息:直接放到配置文件----》flask-sqlalchemy如何读出来的?......
  • WSL 2 上的 Docker 远程容器入门
    [WSL上的Docker容器入门|MicrosoftLearn](https://learn.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-containers)本分步指南将通过使用WSL2(适用于Linux的Windows子系统,版本2)设置DockerDesktopforWindows,帮助开始使用远程容器进行开发。DockerDesktopfor......