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

news2024/10/6 1:40:02

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wstunnel (websocket模式ssh)

接上一篇 修改客户端运行参数 ssh -o ProxyCommand"./wstunnel client -L stdio://%h:%p ws://192.168.254.131:8080" 127.0.0.1 其中127.0.0.1为服务端的本地ssh访问,可以修改为通过服务端访问其他设备的ssh服务。例如: ssh -o ProxyComma…

吉布提国家概况

吉布提国家概况 (最近更新时间:2022年10月) 【国 名】 吉布提共和国(The Republic of Djibouti, La Rpublique de Djibouti)。 【面 积】 2.32万平方公里。 【人 口】约100万。主要有伊萨族和阿法尔族。…

42-巩固练习(二)

42-1 函数的递归 1、问:关于递归的描述错误的是() A.存在限制条件,当满足这个限制条件的时候。递归便不再维续 B.每次递归调用之后越来越接近这个限制条件 C.递归可以无限递归下去 D.递归层次太深,会出现栈溢出现…

C#基础|对象初始化器与构造方法对比总结

哈喽,你好啊,我是雷工! 01 对象初始化器的作用 为了更加灵活的初始化对象的“属性”,是对构造化方法的补充。 02 构造方法总结 2.1、存在的必要性:一个类中,至少要有一个构造方法(有无参数均…

C++对象的初始化和处理

生活中我们买的电子产品都基本会有出厂设置!在某一天我们不用时候也会删除一些自己信息数据保证安全。 C中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。 构造函数和析构函数 对象的初始化和清理也是两个非常重要的安全问题 一…

Unity 使用GPU计算物体距离

在游戏开发中,计算物体之间的距离是一个常见的需求,例如用于碰撞检测、视觉效果等。传统的计算方法可能会在大量物体时带来性能问题,而在 Unity 中,借助 GPU 进行计算可以有效提高性能。本文将介绍一种使用 Compute Shader 在 Uni…

OpenHarmony语言基础类库【@ohos.util.LinkedList (线性容器LinkedList)】

LinkedList底层通过双向链表实现,双向链表的每个节点都包含对前一个元素和后一个元素的引用。当需要查询元素时,可以从头遍历,也可以从尾部遍历,插入、删除效率高,查询效率低。LinkedList允许元素为null。 LinkedList…

大数据第七天

文章目录 吐槽一下这个是怎么需要真的这么大吗? 内核错误内核软死锁(soft lockup)我这个cpu很高吗?大模型都说了不超过80就行了 FinBi安装FinBI下载链接安装时间比较长 吐槽一下 dbeaver 查询hive 数据信息是真的慢,没有一点快的方式&…

使用Excel生成sql脚本(insert/update/delete)

目录 前言 一、Excel文件脚本变量 二、操作示例 前言 在系统使用初期,存在某种原因,需要对数据库数据进行批量处理操作。往往都是通过制定Excel表格,通过Excel导入到数据库中,所以就弄一个excel生成sql的导入脚本,希…

十七、Java网络编程(一)

1、Java网络编程的基本概念 1)网络编程的概念 Java作为一种与平台无关的语言,从一出现就与网络有关及其密切的关系,因为Java写的程序可以在网络上直接运行,使用Java,只需编写简单的代码就能实现强大的网络功能。下面将介绍几个与Java网络编程有关的概念。 2)TCP/IP协议概…

搞懂特殊的引用类型接口、枚举、注解、记录、包装类!

面向对象系列——特殊的引用类型(与class并列地位) 文章目录 面向对象系列——特殊的引用类型(与class并列地位)特殊的:接口、枚举、注解、记录,包装类一、interface接口(不是类)—提供一种规范(具有多态性…

基于harris角点和RANSAC算法的图像拼接matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ....................................................................... I1_harris fu…

使用 Docker 部署 TailChat 开源即时通讯平台

1)介绍 TailChat 官网: https://tailchat.msgbyte.com/ 作者:https://www.moonrailgun.com/about/ GitHub : https://github.com/msgbyte/tailchat TailChat 是一款插件化易拓展的开源 IM 应用。可拓展架构赋予 Tailchat 无限可能…

[Java EE] 多线程(五):单例模式与阻塞队列

1. 单例模式 单例模式是校招中最长考的设计模式之一,首先我们来谈一谈什么是设计模式: 设计模式就好像象棋中的棋谱一样,如果红方走了什么样的局势,黑方就有一定地固定地套路,来应对这样的局势,按照固定地套路来,可以保证在该局势下不会吃亏. 软件开发也是同样的道理,有很多…

harbor私仓搭建及其他服务器如何使用私仓详解

目录 主机规划1.harbor安装(harbor服务器)1.harbor介绍2.为harbor生成自签发证书(可选)3.安装Harbor4.Harbor使用 2.宿主机docker安装(server服务器)1. 设置主机名2. 安装需要的软件包3. 设置yum源4. 查看docker版本5. 安装Docker…

Shell和Linux权限

目录 shell Liunx权限 用户 sudo Linux的权限管理 文件访问者的分类 文件的属性 文件的权限 文件全权限值的表示方法 1.字符表示 2.八进制数值表示 用户符号 修改文件访问权限 修改文件拥有者 修改拥有者和所属组 修改所属组 文件目录的权限的含义 问题 粘滞…

【网络原理】震惊~~ 这是我见过最详细的TCP和UDP讲解

前言. 传输层: 传输层是TCP/IP协议五层模型中的第四层。他的主要工作是负责两台主机之间的数据传输.TCP和UDP都是传输层中的重要协议.再谈端口号(Port): 标识了⼀个主机上进行通信的不同的应用程序 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端…

Leetcode算法训练日记 | day30

专题九 贪心算法 一、重新安排行程 1.题目 Leetcode:第 332 题 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK(肯尼迪国际机场…

对于AIGC(人工智能)我们应该如何看待

文章目录 前言一、AIGC技术的现状与特点二、AIGC技术在各个领域的应用三、AIGC技术对未来社会的影响四、AIGC技术的可能发展方向 前言 随着科技的飞速发展,人工智能与大数据的结合日益紧密,AIGC(人工智能生成内容)技术作为这一领域…

【产品经理修炼之道】- 车载语音产品需求分析与产品设计

目录 一、车载语音产品概述 1. 车载语音交互具有以下特点和优势 2. 车载语音产品脑图框架 二、需求与竞品分析 1. 车载语音交互痛点分析 2. 基于实际驾驶情景的分析 3. 车载语音体验地图 4. 车载语音产品的竞品分析 三、需求分类与功能设计 1. 车载语音产品场景控制划…