您的位置: 首页 - 站长

Soho外贸常用网站家具电商网站建设

当前位置: 首页 > news >正文

Soho外贸常用网站,家具电商网站建设,旅游景区网站建设方案,上位机软件开发工具docker 容器 一、docker是什么#xff1f; 软件的打包技术#xff0c;就是将算乱的多个文件打包为一个整体#xff0c;打包技术在没有docker容器之前#xff0c;一直是有这种需求的#xff0c;比如上节课我把我安装的虚拟机给你们打包了#xff0c;前面的这种打包方式是…docker 容器 一、docker是什么 软件的打包技术就是将算乱的多个文件打包为一个整体打包技术在没有docker容器之前一直是有这种需求的比如上节课我把我安装的虚拟机给你们打包了前面的这种打包方式是将整个虚拟机打包了对吧样打包出来的体积太大了而且如果你只是单纯的想要一个安装好的程序比如sqlserver数据库不想自己安装就想要个安装好的按照之前的打包方式太费事费力的你打包个安装了sqlserver数据库的虚拟机光虚拟机本身的操作系统可能就占用了20个Gsqlserver本身可能也就1个G这是不是就太不合适了当然我们自己不会或者不想安装sqlserver的时候可以选择找个哥们帮你安装一下但是如果100个人都找你安装你是不是累死了所以在这种情况容器技术就诞生了容器技术中的佼佼者就是docker它的底层实现原理我们现在不用纠结。用它来打包出来的软件体积会非常小。比如如果在一个虚拟机上安装了nginx那么这个虚拟机怎么也要1G以上但是用docker打包的已经安装好的nginx可能也就100M左右体积小很多。接下来我们感受一下docker的使用。后面我们可以将很多部署起来很繁琐的靶场环境都通过docker来打包。所以现在网上也有很多使用docker跑起来的靶场复用性非常好别人打包好的你直接拿来就用。而且docker有个东西叫做仓库打包的东西直接放在仓库里面全世界都可以共享。docker是2013年诞生的。 docker打包出来的每个软件称之为docker镜像。可以说整个IT领域不管是哪个工种都需要好好学习docker。 docker是CS架构的程序客户端控制服务端来做各种事情。
概念 镜像images是个压缩包文件里面存放着安装好的程序。 容器ContainerDocker利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停 止、删除。每个容器都是相互隔离的、保证安全的平台。二、docker的安装 docker对windows系统支持不是很好主要是运行在linux上的所以我们需要一个linux系统的主机来玩。 centos7安装docker

centos7上面用yum安装

yum install docker -y #启动docker systemctl start docker #设置开机自启 systemctl enable docker#体验docker版nginx最新版 docker run -d -p 80:80 nginx #体验docker版nginx 1.16 docker run -d -p 81:80 nginx:1.16#体验wordpress docker run –name mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7 docker run -d –link mysql:mysql -p 86:80 wordpress:5.6kali安装docker #添加docker的gpg密钥签名用的 curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -#添加docker的apt源 echo deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable | sudo tee /etc/apt/sources.list.d/docker.list#更新apt缓存 apt update#安装docker sudo apt-get install docker.io#安装docker docker-compose sudo apt-get install docker docker-compose -y#安装完成之后docker就自动启动了 systemctl status docker#查看docker版本 docker -v#查看docker-compose版本 docker-compose -vcentos用yum安装kali上面用apt安装kali属于debian系列的操作系统。 安装好docker之后后面不管是centos还是kali后续docker的操作指令都是一样的。 网络安全有一项工作叫做漏洞复现有些软件、框架、webserver等等他们某些版本会有各种漏洞官方看到之后肯定会修复升级但是某个使用了这些软件的公司可能并没有升级那么就需要我们检测一下是否真的存在这个漏洞不能直接再生产环境上去测试需要在测试环境或者开发环境或者自己搭建的环境中进行漏洞测试这就是漏洞复现的工作。所以我们好多时候都需要自己来搭建相同版本的软件 环境来进行漏洞复现搭建的环境的时候我们就可以使用docker很方便。 很多软件的官网都会有漏洞声明比如nginxhttps://nginx.org/en/security_advisories.html 可以看到某些漏洞影响的版本的进行漏洞复现就需要安装特定版本的软件. 体验一下docker下载安装运行nginx镜像 #体验docker版nginx最新版本地没有nginx镜像的话会自动去仓库中拉去镜像并运行 docker run -d -p 80:80 nginx #体验docker版的特定版本的nginx 1.16 docker run -d -p 81:80 nginx:1.16 #docker run -d -p 82:80 nginx:1.18#直接浏览器访问http://192.168.2.121/ 就能看到nginx首页了。在响应数据中就能看到nginx的版本 #是不是感受到了安装不同版本nginx的便利之处了如果不是用docker你想去安装一些特定的老版本还是比较麻烦的好多时候只能编译安装#体验wordpress需要启动两个docker镜像一个数据库的一个代码程序这个比较大所以速度可能会慢一些

5.7版本的MySQL镜像名称是mysql

docker run –name mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7 # 5.6版本的wordpress最新版本应该已经到了6.x了但是值得说明的一点就是封装wordpress的人为了将镜像做的比较小没有安装中文包所以只能是看英文的了他会自动连接数据库。如果你发现你安装的镜像不是你要的版本那么可能是版本指定错误了或者是官方镜像仓库中的wordpress镜像版本有点问题了。 docker run -d –link mysql:mysql -p 86:80 wordpress:5.6 # 可以更改docker镜像库的源 cd /etc/docker vim docker.json

添加如下内容并保存退出

{registry-mirrors: [https://registry.docker-cn.com] }

可以重启docker服务

systemctl restart docker systemctl start docker systemctl enable docker systemctl stop docker#Docker中国区官方镜像 https://registry.docker-cn.com #阿里云容器不过这个好像不更新了大家可以去阿里官方关注一下 https://cr.console.aliyun.com/虚拟机搞环境需要安装、手动开机、手动运行软件。 docker run首先检测你本地是否已经有了软件镜像如果没有他会自动去下载镜像然后运行运行起来的镜像我们称之为容器可以理解为每个软件都安装在了一个自己的小空间里面。 docker 镜像 容器 镜像–安装了某些特定程序的文件 –压缩文件 容器–镜像运行起来之后就叫做容器。 三、镜像常用命令 docker search#搜索镜像(只搜索官方仓库的官方仓库地址hub.docker.com)# docker search tomcat# docker search apache# 我们拉取的镜像tomcat\apache等名字很短对吧这都是官方仓库中的官方镜像官方仓库中支持用户上传自己封装的镜像用户镜像和官方镜像的差别在名字上面比如我们可以去docker官方去注册一个账号用户自己的镜像前面都会有作者的用户名或者用户所在组织的名字比如jaden/nginx、jaden/tomcat等。docker images#查看本地镜像列表image就是图像、镜像的意思# 本地有的镜像就不要再去下载了而且可以将本地镜像导出来分享给别人docker pull#下载镜像拉取镜像# docker pull tomcat:latest# docker imagesdocker push#上传镜像推送镜像推到官方仓库推送不是那么简单的不然早就满了需要在本地登录一下官方账号才能推后面再演示docker rmi#删除镜像rm image的意思直接rm不加i表示要删除容器可以通过名称加版本来删除或者直接通过镜像id值来删除#docker rmi tomcat:latest 或者 docker rmi imageid值#可以同时删除多个镜像docker rmi tomcat:latest tomcat:jre17-temurin-jammy#如果这个镜像处于运行状态的是删除不了的比如有容器在使用这个镜像就不能删除镜像比如docker rmi nginx:1.16会报错#查看镜像的运行状态docker container ls其实这是查看容器的状态但是可以看到哪些镜像被使用了docker save#导出镜像(压缩包) docker save 镜像名称:版本 -o docker_nginx1.20.tar.gz#docker save nginx:1.16 -o docker.nginx1.16.tar.gz#ls 就看到了 docker.nginx1.16.tar.gz docker load#导入镜像 docker load -i docker_nginx1.20.tar.gz会自动解压并导入到docker服务中#从容器复制文件到宿主机 docker cp my_container:/path/in/container /path/on/host#从宿主机复制文件到容器 docker cp arl.txt my_container:/path/in/container四、容器的常用命令 #docker 常见命令 docker run 运行一个新容器 docker ps docker container ls #参数: 默认之显示up状态的容器-a查看所有容器或者–all docker stop 停止容器 #例子 docker stop 容器id或者容器名字 docker kill 杀掉容器 #强制关闭容器尽量不要用很容易就启动不了了 docker start 启动容器 #例子 docker start 容器id或者容器名字 docker restart 重启重启 #例子 docker restart 容器id或者容器名字 docker rm 删除容器 #例子 docker rm 容器id或者容器名字同时删除多个就空格隔开处于up状态是不能直接删除的强制删除是可以删除up状态的容器的docker rm f 容器名称或者iddocker rm -f docker ps -a -q #删除所有容器-q是只显示容器id反引号中的指令优先执行docker top 查看容器内的进程 #例子docker top 容器id或者容器名字 docker stats 查看容器的资源占用情况 docker exec 进入容器 #例子 docker exec -it 容器id或者容器名字# 直接交互指令docker exec -it 76738703b7b2 ls # 执行ls指令

进入终端docker exec -it 76738703b7b2 /bin/bash 或者/bin/sh #/bin/bash打开一个终端窗口exit指令退出终端但是docker容器内容一般不会安装额外的软件所以导致大量的指令是用不了的比如ifconfig、ps、ip addr等docker inspect -f {{.Name}} {{.NetworkSettings.IPAddress }} $(docker ps -

aq) #可以查看所有容器的ip地址的容器的ip地址是从172.17.0.1开始分的。docker容器类似于一个微型的虚拟机它占用的都是宿主机(物理机)的资源。在物理机上是可以看到容器所运行的程序的。每个容器都有自己的ip地址。docker inspect –format{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} $(docker ps -aq) | grep 容器名称或者id# curl -I 加网址可以看到http响应数据 ┌──(root㉿kali)-[/home/] └─# curl -I http://172.17.0.4 HTTP/1.1 200 OK Server: nginx/1.23.4#netstat -lntup可以看到给docker的端口映射

docker run -d -p 80:80 nginx #-p 80:80端口映射表示宿主机的80端口映射到了nginx容器的80端口。网络结构

docker run参数有很多参数最后一个肯定是镜像 -d #放后台运行 -p 端口映射 #例子 -p 宿主机端口:容器端口 –name 指定容器的名字 # docker run -it –name jaden 镜像id或者名称 –link 关联另一个容器 # 了解即可 -e MYSQL_ROOT_PASSWORD #设置容器的一些属性了解一下即可 -it #是给运行起来的这个容器分配一个终端就可以进入到容器内部操作了

后面想部署什么直接网上搜索即可。五、制作docker镜像并上传

学习了怎么下载你就知道官方的镜像是怎么来的。 docker pull debian:latest docker run -it –name weicoll_nginx -p 90:80 debian:latest

进入容器

docker exec -it weicoll_debian /bin/bash

安装nginx

apt update # 更新apt缓存 apt install nginx -y # 安装nginx nginx -v # 查看nginx版本安装好了

ip addr

apt install procps # 安装ps指令

ps -ef

nginx #启动nginxsystemctl是没有的没有安装这个指令 exit

打包之前做好先停止容器

docker stop jaden_debian docker commit jaden_nginx syrjaden/debian_nginx:v1 # 根据名字或者id都可以提交后面加个镜像名称和版本,syrjaden是docker仓库用户名#上传到官方仓库 docker login #登录官方仓库 #docker tag debian_nginx:v2 syrjaden/debian_nginx:v2 # 这是改名字如果名称不冲突就不用改名字 docker push syrjaden/debian_nginx:v2 # 直接push即可六、docker-compose docker-compose是批量管理docker容器的工具 比如前面我们启动的wordpress项目需要启动两个容器才行有时候就是这样需要同时启动多个容器来完成你想要做的事情但是到底启动多少个容器呢比如wordpress那个我们记不住换一个机器不看笔记很难起来有了docker-compose就可以解决这个问题了。 #centos7安装docker-compose我们前面已经安装了不需要再次安装了 yum install epel-release.noarch -y yum install docker-compose -y#kali安装docker-compose apt install docker-compose -y# 查看版本 docker-compose -v这里给大家补充个点 systemctl restart docker 重启docker服务会自动关闭所有的容器。 #启动容器的时候如果加上了–restartalways那么重启服务之后这个容器会自动启动 docker run -it -d –restartalways nginx:1.16 # 实现了开机自启动的效果配置文件docker-compose.yml有了这个配置文件就可以通过docker-compose来控制多个容器了

为了避免端口冲突我们可以先关闭所有docker容器

docker stop docker ps -a -q# 为了演示方便我们可以先创建一个wordpress文件夹进入到里面创建一个docker-compose.yml名字的文件 mkdir wordpresscd wordpress/ touch docker-compose.yml vim docker-compose.yml# 将如下内容拷贝到文件中保存退出注意拷贝的时候把里面我标记的注释去掉。# 注意下面这个文件内容是严格要求格式的多一个空格都不行通过缩进来表示等级关系下面的这种配置语法叫做yaml语法 version: 3 # docker-compose.yml的文件格式版本 services:db: #容器名称image: mysql:5.7restart: always # 开机自启动的意思environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: 123456 # 和下面的WORDPRESS_DB_PASSWORD值要对应上wordpress:depends_on:- dbimage: wordpress:5.6ports:- 83:80 # 端口映射restart: alwaysenvironment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: 123456 常用docker-compose命令 创建并启动 docker-compose up -d # 启动之后就可以通过浏览器访问了 #停止并删除 docker-compose down #重启 docker-compose restart #停止 docker-compose stop #启动 docker-compose start #查看启动环境 docker-compose ps -a七、docker-compose启动靶场环境 https://vulhub.org/#/environments/vulhub部署文章以及拉去镜像失败解决的方法https://blog.csdn.net/qq_22701869/article/details/138545663 https://blog.csdn.net/qq_22701869/article/details/138545663