Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
Docker
一.什么是Docker?
百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker官网:http://www.docker.com
二.为什么说Docker是容器化技术?
- 容器化技术的特点:
- 标准化:每个容器都是标准化、可移植的,因为他们直接运行在宿主机的内核上
- 隔离:容器互相隔离,互不干扰,独立运行
- 高性能:容器性能开销极低,可以实现分钟级甚至秒级的部署和启动
- 版本:CE(Community Edition:社区版)和 EE(Enterprise Edition:企业版)
三.Docker 理念
Build,Ship and Run Any App,Anywhere,在任何地方构建、 发布并运行任何应用程序(一次封装,到处运行)
四.Docker 架构
docker 由三部分组成:
- Client 客户端
- docker 主机
- Registry 镜像仓库服务器
docker daemon:
- docker 安装后,会以后台运行、守护进程的形式存在
- images 镜像: 镜像可以用来创建 docker 容器,一个镜像可以创建很多容器
- containers: 镜像和容器的关系类似面向对象设计中的类和对象, 镜像是容器的模板,容器是基于镜像创建出来的。 容器可以被创建、启动、停止、删除等等。
Registry:
- 镜像注册服务器 https://hub.docker.com 一个 docker Registry(仓库注册服务器) 中可以包含多个 Repository(仓库); 每个仓库可以包含多个标签/版本(Tag);每个标签对应一个镜像。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式,公开仓库就是 docker 官方仓库,私有仓库是自己搭建的 docker 私服
Client:
- docker 终端 安装好 docker 中,同时包含了 docker 客户端,客户端负责执行 docker 命令, 发送给 docker 主机中的 docker 守护进程,例如:从仓库下载镜像,通过镜像创 建容器等等
五.CentOS7 安装 docker
(1)安装需要的软件包:
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)设置 docker 下载镜像(推荐用阿里云,一个字:快)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)更新 yum 软件包索引
yum makecache fas
(4)安装 DOCKER CE (社区版)
yum install -y docker-ce docker-ce-cli containerd.io
注意第一次安装可能会出现错误,重新执行一下安装的命令就好了
(5)启动 docker
systemctl start docker # 启动docker
systemctl enable docker # 设置开机自启动
(6)查看版本
(7)docker 卸载,一次执行下面的三行命令
systemctl stop docker
yum remove -y docker-ce
rm -rf /var/lib/docker
六.配置阿里云镜像服务加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ny5dsu6o.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
七.Docker 常用命令
(1).Docker 基本命令
(2)Docker服务相关命令
- 启动Docker服务:
systemctl start docker
- 关闭Docker服务:
systemctl stop docker
- 查看Docker状态:
systemctl status docker
- 重启Docker服务:
systemctl restart docker
- 设置Docker服务跟随虚拟机开机自启:
systemctl enable docker
- 取消Docker服务跟随虚拟机开机自启:
systemctl disable docker
(3)Docker 镜像命令(docker官方镜像网站)
- 查看所有的本机镜像:
docker images [-q|--no-trunc]
,-q:查看镜像ID --no-trunc:查看完成的镜像ID - 查找镜像:
docker search 镜像名称
- 下载镜像:
docker pull 镜像名称:版本号
,不加版本号默认是latest最新版 - 删除镜像:
docker rmi [-f] 镜像名|镜像ID:版本号
,删除指定版本镜像,版本为latest版本号可以省略,[-f]:强制删除 - 批量删除:
docker rmi [-f] mysql tomcat redis
,除多个镜像,使用空格间隔不同的镜像名称
我就不演示了
- 删除全部镜像:
docker rmi -f $(docker images -q)
我就不演示了
(4)容器操作
docker create 镜像名称
# 根据镜像名创建一个容器
- 启动、停止、重启容器:
docker kill 容器名|容器ID
根据容器名强制停止一个容器
- 创建并启动容器:
docker run --name tomcat2 tomcat
当本地镜像存在时,相当于 docker create + docker start
当本地镜像不存在时,相当于 docker pull + docker create + docker start - 删除容器:
docker rm -f $(docker ps -qa)
#删除所有容器,包括正在运行的容器
我就不演示了
docker ps -a -q | xargs docker rm
#删除所有容器,不包括正在运行的容器
我就不演示了
ctrl + p + q
# 不停止退出容器
exit
#容器停止退出,此时执行
- 启动守护式容器:
docker run -d --name qiu 镜像名|镜像ID
推荐直接使用:docker run -itd --name qiu 镜像名|镜像ID
八.数据卷
(1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中
(2)解决了什么问题?例如:MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失
(3)安装centos:7镜像:docker pull centos:7
(4)做一个例子
将宿主机根目录中的 qiu 挂载到容器根目录中的 qiu
(5)挂载数据卷
docker run -itd -v /qiu:/qiu --name myMysql mysql
-v:挂载数据卷格式:
/宿主机目录(文件):/容器内目录(文件)
目录必须是绝对路径
如果目录不存在,
则自动创建
可以挂载多个数据卷
(6)查看数据卷是否挂载成功
docker inspect myMysql
(7)数据共享
首先进入容器,在容器的数据卷挂载目录中创建文件并写入内容
然后退出容器,查看宿主机挂载目录,可以看到同步更新的文件
(8)数据的同步
首先停止容器
然后在宿主机修改共享数据 接下来启动前面的容器,
查看共享数据文件,发现数据在容器中同步
(9)数据的持久化
首先删除容器
然后在宿主机修改共享数据
接着重新创建容器并挂载数据卷
发现数据在容器中恢复
(10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷
docker run -it -v /dataVolumeHost31:/dataVolumeContainer31 -v /dataVolumeHost32:/dataVolumeContainer32 --name centos3 centos:7
docker run -it -v /dataVolumeHost:/dataVolumeContainer4 --name centos4 centos:7
docker run -it -v /dataVolumeHost:/dataVolumeContainer5 --name centos5 centos:7
九.应用部署
(1)部署 tomcat
创建并运行tomcat容器
docker run -d -p 8080:8080 -v /docker/tomcat/webapps:/usr/local/tomcat/webapps -v /docker/tomcat/logs:/usr/local/tomcat/logs --name qiu_tomcat tomcat:8.5
准备一个index.html页面,使用 ftp 工具上到 /docker/tomcat/webapps/qbb 中
浏览器访问一下:http://192.168.137.72:8080/qbb/
也可以查看一下tomcat的日志:
docker logs -tf --tail 20 atguigu_tomcat
(2)部署MySQL
docker run -d -p 3306:3306 -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name atguigu_mysql mysql:5.7
十.docker 容器化技术和虚拟机技术
十一.镜像制作
(1)方式一:通过容器制作镜像
①生成镜像
docker commit 容器名 镜像名称:版本号
②压缩镜像
docker save -o 压缩文件名称 镜像名称:版本号
③还原镜像
docker load -i 压缩文件名称
(2)做一个例子:我们将前面tomcat制作成一个镜像然后部署运行
①将虚拟机的/docker/tomcat/webapps/qbb
copy到 qiu_tomcat这个容器下的/usr/local/tomcat/webapps/ROOT
目录
docker cp /docker/tomcat/webapps/qbb qiu_tomcat:/usr/local/tomcat/webapps/ROOT
②进入容器:docker exec -it qiu_tomcat /bin/bash
,查看index.html是否赋值付过来了
③浏览器访问一下:http://192.168.137.72:8080/
④生成镜像;注意:要先退出容器(exit)
docker commit -a "qiuqiu" -m "create image from container" qiu\_tomcat qbb/mytomcat:1.0
⑤压缩镜像
县创建/opt/docker目录
mkdir -p /opt/docker
执行压缩命令
docker save -o /opt/docker/qbb_mytomcat_v1.0 qbb/mytomcat:1.0
⑥还原镜像
我们先删除原来的镜像和容器
docker rm -f qiu_tomcat
docker rmi 9ddc19a406d0
由压缩程序还原出镜像文件
docker load -i /opt/docker/qbb_mytomcat_v1.0
一键部署
docker run -d -p 8080:8080 --name mytomcat qbb/mytomcat:1.0
- Docker
- 一.什么是Docker?
- 二.为什么说Docker是容器化技术?
- 三.Docker 理念
- 四.Docker 架构
- 五.CentOS7 安装 docker
- (1)安装需要的软件包:
- (2)设置 docker 下载镜像(推荐用阿里云,一个字:快)
- (3)更新 yum 软件包索引
- (4)安装 DOCKER CE (社区版)
- (5)启动 docker
- (6)查看版本
- (7)docker 卸载,一次执行下面的三行命令
- 六.配置阿里云镜像服务加速器
- 七.Docker 常用命令
- (1).Docker 基本命令
- (2)Docker服务相关命令
- (3)Docker 镜像命令(docker官方镜像网站)
- (4)容器操作
- 八.数据卷
- (1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中
- (2)解决了什么问题?例如:MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失
- (3)安装centos:7镜像:docker pull centos:7
- (4)做一个例子
- (5)挂载数据卷
- (6)查看数据卷是否挂载成功
- (7)数据共享
- (8)数据的同步
- (9)数据的持久化
- (10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷
- 九.应用部署
- (1)部署 tomcat
- (2)部署MySQL
- 十.docker 容器化技术和虚拟机技术
- 十一.镜像制作
- (1)方式一:通过容器制作镜像
- ①生成镜像
- ②压缩镜像
- ③还原镜像
- (2)做一个例子:我们将前面tomcat制作成一个镜像然后部署运行
- ①将虚拟机的/docker/tomcat/webapps/qbb copy到 qiu_tomcat这个容器下的/usr/local/tomcat/webapps/ROOT目录
- ②进入容器:docker exec -it qiu_tomcat /bin/bash,查看index.html是否赋值付过来了
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YjgeWssh-1649437878739)(https://blog.csdn.net/qbbit)]QIUQIU&LL
- 本文链接: https://blog.csdn.net/qbbit/p/16114039.html
- 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。