Docker-概念及配置(超详细)

docker

第一章

1、什么是docker

答:docker是一种容器引擎,通过docker可以将软件安装并且配置好以后,做成一个镜像文件。通过这个镜像文件可以快速的安装、配置软件环境

2、3个概念

    【docker镜像】:将软件环境安装配置好以后产生的镜像文件,通过它可以快速配置软件环境
​
    【docker仓库】:存放在docker镜像的位置 
​
    【docker容器】:通过docker镜像产生的一个实例(一个正在运行的应用程序)
​
​
【问题3:配置docker的要求】
    centOs的版本必须是7或者是更高版本 

3、安装及配置

@@@@@@@【docker的安装以及配置】
​
 1、联网安装docker
    yum install docker
 
 2、启用docker
    systemctl start docker
 
 3、设置开机启动(只要Linux一加载,docker自动开启)
    systemctl enable docker
​
 4、如果要停止docker
    systemctl stop docker
更改默认配置
@@@@@@@【更改docker的默认配置】
    默认情况下,docker类似于maven,需要连接docker仓库下载docker的镜像,但docker仓库的地址在国外,下载比较慢
    所以我们一般会改成国内的地址 
​
1、进入etc/docker
    cd   /etc/docker
​
2、编辑 daemon.json
    
    在{}中增加下代码,默认{}中是空的
​
    在{}中添加如下内容
    {
    
        "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://9cpn8tt6.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],"insecure-registries": ["10.0.0.12:5000"]
    
    }
​
3、停止docker
    systemctl stop docker
​
4、启动docker
    systemctl start docker

4、操作docker镜像

@@@@@@@@操作docker镜像
​
1、查看当前本地仓库中存在哪些docker镜像
    
    docker images
​
2、从远程仓库中查询docker镜像
    
    docker search 软件名称 
        @@@@@@@@@但这种方式是在控制台显示,不够直观,我们可以查询docker的官网进行可视化搜索 
​
        @@@@@@@@官网地址: hub.docker.com
​
​
3、从远程仓库中拉取docker镜像到本地仓库中
    
    方式1: docker pull  软件名:版本号
​
        docker pull mysql:5.7
​
​
    
    方式2:docker pull 软件名       (如果没有指定版本号,系统默认下载最新版本)
        docker pull nginx
​
​
4、删除镜像
​
    docker rmi 镜像id 
​
    docker rmi 605c77e624dd
​
    @@@@@@@注意:如果当前镜像产生了docker容器(一个正在运行的程序)该镜像无法直接删除
​
        删除方式1:
            1、先停止docker容器
                docker stop  容器id
​
            2、再删除docker容器
                docker rm 容器id
            
            3、最后删除docker镜像
                docker rmi  镜像id
​
        删除方式2:(强制删除)
​
            docker rmi 镜像Id  -f

5、操作docker容器

@@@@@@@操作docker容器 (一个正在运行的程序)
​
1、查看当前有哪些容器正在运行
​
    docker ps ---------------------------这个命令只能查看到正在运行的容器 
​
2、查看所有容器(不论是正在运行的还是已经停止的)
    docker ps -a
​
3、启动容器(通过docker镜像运行一个程序)
    
    @@@@@@不同的docker镜像启动容器的方式有所有不同,但大体步骤是一样的
​
    docker run  -d   -p  linux的端口号:docker中的端口号  软件名:版本号
    docker run  -d   -p  80:80  nginx
    
        docker run---------运行docker容器
​
        -d:表示容器在后台运行
​
        -p  linux系统的端口号:docker中的端口号
            此处是进行端口映射,通过linux的哪一个端口号映射到docker中的哪一个端口号
​
    
    例如:启动nginx容器
        docker run -d -p 80:80 nginx    
    
    例如:启动tomcat容器
        docker run -d -p 8080:8080 tomcat:8.5.20
    
    例如:启动redis容器
        docker run -d -p 6379:6379 redis
​
4、停止docker容器(让一个正在运行的容器停止运行)
    
    docker stop 容器id
​
​
5、让停止运行容器重新运行
    docker start 容器id
​
​
6、删除容器
    docker rm  容器Id
​
7、如果容器被删除了,如果要再次运行容器,就需要重新通过镜像启动
    docker run  -d -p 80:80 nginx

image-20230821143708347

6、nginx

@@@@@nginx
​
1、拉取nginx
    
    docker pull nginx
​
2、产生nginx容器
    
    docker run -d  -p 80:80  nginx
​
3、注册防火墙
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload

7、redis

@@@@@配置redis
​
1、拉取redis
​
    docker pull redis
​
2、产生redis容器
    
    docker run -d  -p 6379:6379  redis
​
​
3、注册防火墙
    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    firewall-cmd --reload

8、tomcat

@@@@@@@@配置tomcat

1、拉取tomcat

	docker pull tomcat:8.5.20



2、产生tomcat容器
	
	docker run -d  -p 9999:8080 tomcat:8.5.20


3、注册防火墙
	firewall-cmd --zone=public --add-port=9999/tcp --permanent
	firewall-cmd --reload

image-20230821153902238

将项目部署到tomcat中
1、在home目录下,创建tomcat目录
mkdir -p /home/tomcat
2、执行命令将docker中tomcat的目录挂载到外部目录中,挂载后操作外部目录就相当于在操作 docker中的目录
docker run -d -p :8080 --name tomcat \
-v /home/tomcat/webapps:/usr/local/tomcat/webapps --privileged=true
tomcat:8.5.20
\ :表示换行

--name tomcat: 表示给容器指定别名tomcat

-v: 挂载的命令

语法:-v /外部目录:/docker容器的目录
示例: -v /home/tomcat/webapps:/usr/local/tomcat/webapps

tomcat:8.5.20:表示是通过哪一个镜像产生容器
-d:表示后台运行
-p 8080:8080:表示端口映射 -p 宿主机端口:docker容器的端口
docker --privileged=true 参数作用

使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限
3、部署项目
只需要将打好的war放到设置的webapps目录即可

访问: ip地址:8080/包名
4、如果要进入容器
docker exec -it 容器的Id /bin/bash
或者
docker exec -it 容器的别名 /bin/bash
5、退出容器
exit
6、查看docker进行了哪些端口号的映射
firewall-cmd --list-port

9、MySQL

@@@@@@配置Mysql

1、拉取mysql

	docker pull mysql:5.7

2、产生mysql容器

	docker run  --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3307:3306 mysql:5.7

	docker下的mysql:
		初始账号 root
		初始密码 root

3、注册防火墙
	firewall-cmd --zone=public --add-port=3307/tcp --permanent
	firewall-cmd --reload

image-20230821151237964

10、rabbitmq

@@@@@@配置rabbitmq

1、拉取rabbitmq

	docker pull rabbitmq:management

2、产生rabbitmq容器

	docker run -d -p 15672:15672  -p 5672:5672  rabbitmq:management

3、注册防火墙
	firewall-cmd --zone=public --add-port=15672/tcp --permanent
	firewall-cmd --zone=public --add-port=5672/tcp --permanent
	firewall-cmd --reload

Linux防火墙

@@@@@@需要将端口号在防火墙中注册或者是关闭防火墙

	
		@@@@@@@注册		
		firewall-cmd --zone=public --add-port=80/tcp --permanent
		firewall-cmd --reload

		@@@@@关闭防火墙
		systemctl stop firewalld.service            #停止firewall
		systemctl disable firewalld.service        #禁止firewall开机启动

服务器

阿里云或腾讯云

**服务器说白了就是一个ip,把当前虚拟机的ip换成买来的ip

1、在阿里云服务器上部署环境、部署项目 2、git的使用

在实际应用中,我们可以使用一个工具简化操作:“宝塔面板”

${pageContext.request.contextPath}---获得当前

git使用

	方式1:单独使用git不使用idea

	方式2:结合Idea一起使用
方式1:单独使用
1-6
方式1:单独使用git不使用idea的步骤:

1、在当前主机中创建一个目录,作为git的本地仓库(用于存储项目向服务器推送)

2、初始化git仓库

	1、cmd进入目录
	
	2、执行命令  git init


3、在工作区中创建新文件

4、查看工作区的文件

	git status


		红色----------新文件或者是修改后的文件,此文件还没有加入到暂存区

		绿色 ---------文件已经加入到了暂存区,但是还没有提交到Master主分支
	


5、将新文件或者是修改后的文件加入到暂存区
	
	git add . -------------------将所有新文件或者是修改后的文件加入暂存区


6、将暂存区的文件,提交到主分区

	git commit -m "第一次提交"
			数据一旦提交,通过git stutus就看不见任何内容 
7-12
7、在gitee注册账号,并且创建仓库


8、将本地仓库与远程git服务器关联

	git remote add origin 仓库地址 

	git remote add origin https://gitee.com/brucema567/d116_5.git


9、将代码推送到远程的git仓库
	git push -u origin master
		

10、其他用户要从远程仓库下载代码有两种方式:

	方式1:clone服务器的代码

		git clone 仓库地址

		git clone https://gitee.com/brucema567/d116_5.git


	方式2:pull方式从服务器拉取

		1、创建目录

		2、初始化目录      git init

		3、关联到远程服务器  git remote add origin https://gitee.com/brucema567/d116_5.git

		4、从服务器中拉取项目  git pull origin master




11、如果修改了代码,先add,再Commit,最后push


12、其他用户要拉取最新的代码
	git pull origin master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/576163.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QA】Git的底层原理

前言 本文通过一个简单的示例,来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤: 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…

一张图带你理解 绝对路径 和 相对路径

绝对路径和相对路径是用于定位文件或目录位置的两种不同方式。 1、绝对路径: 绝对路径是从文件系统的根目录开始的完整路径,可以唯一地标识文件或目录的位置。 绝对路径是以根目录开始的 在Unix/Linux系统中,绝对路径是类似于/home/user/do…

2024 OceanBase 开发者大会:OceanBase 4.3正式发布,打造近PB级实时分析数据库

4月20日,2024 OceanBase开发者大会盛大召开,吸引了50余位业界知名的数据库专家和爱好者,以及来自全国各地的近600名开发者齐聚一堂。他们围绕一体化、多模、TP与AP融合等前沿技术趋势展开深入讨论,分享场景探索的经验和最佳实践&a…

基于DEAP数据集的四种机器学习方法的情绪分类

在机器学习领域,KNN(K-Nearest Neighbors)、SVM(Support Vector Machine)、决策树(Decision Tree)和随机森林(Random Forest)是常见且广泛应用的算法。 介绍 1. KNN&am…

Let‘s Move Sui:解锁区块链高性能潜力,探索创新开发体验

Sui 是基于第一原理重新设计和构建而成的 L1 公链,旨在为创作者和开发者提供能够承载 Web3 中下一个十亿用户的开发平台。 今年,Sui 的原生编程语言 Move 迎来了重要的更新升级。2024 版将增加枚举 Enums、宏函数、Method 语法等功能。这些重要的新功能为…

2024.4.28 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、总体流程 5、网络结构 5.1、损失函数 5.2、Confidence Maps 5.3、Part Affinity Fields(PAFs) 5.4、多人的PAFs 6、实验 7、结论 深度学习 yolov8实现目标检测和人体姿态估计 Yolov8网络结构 yaml…

基于深度学习的实时人脸检测与情绪分类

情绪分类 实时人脸检测与情绪分类 Kaggle Competion 数据集 fer2013 中的测试准确率为 66%CK数据集的检验准确率为99.87%情绪分类器模型预测从网络摄像头捕获的实时视频中的平均成本时间为 4~ 10ms 关键技术要点: 实时人脸检测:系统采用了前沿的人脸检…

案例-部门管理-新增

黑马程序员JavaWeb开发教程 文章目录 一、页面原型二、接口文档三开发1、controller2、service(1)service接口层(2)Service实现层 3、 mapper4、postman 优化 一、页面原型 二、接口文档 在这里插入图片描述 三开发 1、control…

2024年好用又便宜的云手机!哪款性价比高?

随着科技的飞速发展,云计算技术也在不断演进,而云手机作为其创新之一,已经开始在我们的生活中崭露头角。它通过将手机的硬件和软件功能移到云端,让用户能够借助强大的云计算资源完成各种任务。2024年,哪款云手机性价比…

运行django

确保app被注册 urls.py中编写url 视图对应关系 命令行启动 python manage.py runserver

“湘”约你我,“V”你而来!苏州金龙新V系客车闪耀星城

“湘”约你我、为你而来!4月24日,苏州金龙新V系智慧客车推介会走进星城长沙。来自湖南省内的160余位旅游客运行业协会及企业代表齐聚一堂,共同见证客车行业新质生产力标杆产品的无限魅力。 当前,湖南的旅游产业和道路运输业正处于…

每年首版次测试报告的要求有哪些?

每年首版次测试报告的要求可能因不同的地区、行业或产品而有所差异,但一般而言,它们通常遵循一些基本的标准和原则。以下是一些常见的首版次测试报告要求: 完整性:测试报告应包含所有必要的测试内容,包括但不限于测试…

意法半导体STM32F407VET6TR单片机优缺点、参数、应用和引脚封装

ST(意法半导体)的型号STM32F407VET6TR属于32位MCU微控制器,基于高性能的ArmCortex-M4 32位RISC核心,工作频率高达168MHz。单精度浮点单元(FPU)用于Cortex-M4核心,支持所有Arm单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和一个…

1-内核开发环境ubuntu+virtualbox+mobaXterm搭建

内核开发环境 ubuntuvirtualboxmobaXterm搭建 目录 内核开发环境 ubuntuvirtualboxmobaXterm搭建 1.virtualbox 安装 2.ubuntu 安装 3.网络设置 4.虚拟机安装ssh 服务,更新ubuntu 源安装基本软件 5.mobaXterm 个人免费版本安装 6.总结 本课程教程从0-1开始教…

NineData即将亮相2024中国移动算力网络大会,创始人CEO叶正盛带来《生态软件加速数据库国产替代》主题演讲

2024年4月28-29日,NineData即将亮相2024中国移动算力网络大会,创始人&CEO叶正盛将在「云原生数据库专场」带来《生态软件加速数据库国产替代》主题演讲。届时将和众多院士专家、行业大咖、业界伙伴一起探讨,并帮助企业提升数据库研发协同…

进口透明可视耐腐蚀PFA进样管特氟龙圆底试管适配MC-ICP-MS

PFA进样管可适配Neptune plus多接收器等离子质谱仪(MC-ICP-MS),广泛应用于地球化学、核保障、环境科学、金属组学领域,在生物、物理、化学、材料等多个学科的交叉方向也有良好的应用前景。 外观半透明,便于观察管内情…

【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包

【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包 文章目录 【Moveit2】使用moveit_setup_assistant配置自己的机械臂功能包1.确保你已经安装了moveit2环境2.配置机械臂功能包Reference 环境信息: ubuntu 22.04ros2 humblemoveit2 1.确保你已经安装了…

《佩德罗·巴拉莫》炽热的科马拉土地上,游荡的亡魂诉说着一切!

《佩德罗巴拉莫》炽热的科马拉土地上,游荡的亡魂诉说着一切! 胡安鲁尔福(1917-1986),墨西哥作家,代表作有《佩德罗巴拉莫》《燃烧的原野》《金鸡》,和诺奥克塔维奥帕斯、卡洛斯弗恩特斯并称为墨…

Redisson - tryLock 函数参数分析

这里有三个参数: waitTime:等待时间leaseTime:超时施放时间TimeUnit:时间单位 等待时间 如果 ABC… 多个线程去抢夺一把锁,A 成功了,如果设置的是 -1,那么 BCD... 就不等待,直接返…

使用CNN实现新闻文本分类

一、实验目的: 理解卷积神经网络的基本概念和原理;了解卷积神经网络处理文本数据的基本方法;掌握卷积神经网络处理文本数据的实践方法,并实现新闻文本的分类任务。 实验要求: 使用Keras框架定义并训练卷积神经网络模…