Java真的不难(五十三)Docker的快速入门及使用

news2024/12/27 11:02:59

Docker的入门及使用

这篇文章将不全面介绍理论,Docker对于我们后端开发来说会用就行,能使用Docker去安装一些镜像运行,为简化配置节省时间和错误率,所以这篇文章实用性很高,可以直接上手!


一、什么是Docker?

Docker官网:https://www.docker.com/

首先一句话:Docker解决了软件环境部署复杂的问题

其实在我们开发中遇到的最多一个情况就是:我在我的电脑能运行,为什么你电脑上不能运行?所以就需要运维人员去不断调试,而有了Docker,只需要简单的几行命令,就可以做到所有运行环境都一致。

Dcoker的专业介绍:

docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。 docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。

为什么docker越来越受欢迎?

灵活、轻量级、可互换、便携式、可扩展、可堆叠


二、docker改变了什么

面向产品:产品交付
面向开发:简化环境配置(相当于一键安装)
面向测试:多版本测试
面向运维:环境一致性
面向架构:自动化扩容(微服务)


三、Centos下Docker的安装

因为Docker是运行在Linux上,所以需要准备一台Linux虚拟机,推荐购买阿里云或腾讯云的服务器,因为这样以后不管在哪都可以通过地址访问,若使用电脑本地的虚拟机,只能在本地电脑上使用。

官方帮助文档:https://docs.docker.com/get-docker/

Linux环境查看:

uname -r
3.10.0-1160.71.1.el7.x86_64
#需要3.10以上

#查看当前系统信息:
cat /etc/os-release

安装Docker:

若之前安装过Docker,则先得卸载(全部复制直接执行):

#1、卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

开始安装:

#3、设置镜像仓库(默认是国外的)
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
#修改成国内的
sudo yum-config-manager \
    --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  
#更新软件包索引
yum makecache fast

#4、安装Docker相关内容(ce:社区版  ee:企业版)
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

#5、启动Docker
sudo systemctl start docker

查看是否安装成功:

docker version

Client: Docker Engine - Community
 Version:           20.10.22
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        3a2c30b
 Built:             Thu Dec 15 22:30:24 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.22
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       42c8b31
  Built:            Thu Dec 15 22:28:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.14
  GitCommit:        9ba4b250366a5ddde94bb7c9d1def331423aa323
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

若输入docker version 指令后出现以上信息,则安装成功!

测试运行:

#7、运行hello world
sudo docker run hello-world
#输出
Hello from Docker!

#8、查看一下hello world这个镜像是否存在
docker images

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   15 months ago   13.3kB
#上述存在hello world这个镜像

#查看启动情况
docker ps -l

到这里Docker已经安装完毕!


四、Docker的卸载

Docker的卸载也是比较简单的,直接执行以下命令即可:

#1、卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

#2、删除资源
sudo rm -rf /var/lib/docker  (docker默认资源路径)
sudo rm -rf /var/lib/containerd

五、配置阿里云镜像加速

Docker默认的下载源在国外,所以很慢,一般我们都会配置一下国内的镜像,比如配置阿里云的:

#一下步骤分步执行即可
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://yqtk4mcd.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

六、Docker镜像命令

#查看本机上所有的镜像
docker images

REPOSITORY  仓库源
TAG  镜像标签
IMAGE ID   镜像ID
CREATED    镜像创建时间  
SIZE      镜像大小

#可选项
  -a, --all             显示全部
  -q, --quiet           只显示ID

#搜索镜像
docker search 镜像名  (docker search mysql)
#mysql    MySQL is a widely used, open-source relation…   13622     [OK]       
#mariadb   MariaDB Server is a high performing open sou…   5202  

#加上条件搜索(mysql STARS大于等于10000的镜像)
docker search mysql --filter=STARS=10000

下载镜像:

这里就以下载mysql为例:

docker pull mysql

#以下是输出信息
Using default tag: latest   #如果不写tag。默认就是最新的
latest: Pulling from library/mysql
72a69066d2fe: Pull complete   #分层下载
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
688ba7d5c01a: Pull complete 
00e060b6d11d: Pull complete 
1c04857f594f: Pull complete 
4d7cfa90e6ea: Pull complete 
e0431212d27d: Pull complete 
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709  #签名信息
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  #真实地址

docker下载默认都是下载最新版的,若要指定版本下载,就需要在后面加上版本号:

#指定版本下载(版本必须在docker hub上存在)
docker pull mysql:5.7

删除镜像:

docker rmi(#remove images)
docker rmi -f d445c0adc9a5   #删除一个镜像
docker rmi -f d445c0adc9a5 d445c0adc9a5 d445c0adc9a5   #删除多个镜像

七、Docker容器的命令

#新建容器并启动(新建Centos)
docker pull centos


#启动
docker run[可选参数] 镜像名称
docker run -it  centos /bin/bash   #启动并进入容器

#可选参数
--name="name"  #给镜像取一个名字
-d             #后台运行
-i/-t          #使用交互方式运行,进入容器查看内容
-p             #指定容器端口  -p:8080:8080
-P(大写)      # 随机指定端口


#直接停止容器并退出
exit

#容器不停止退出
ctrl+p+q

#查看所有运行的容器
docker ps
docker ps -a  #查看之前运行过的
docker ps -n  #显示最近创建过的容器
docker ps -q  #只显示容器编号


#启动容器、停止容器
docker start 容器ID   #启动容器
docker restart 容器ID  #重动容器
docker stop 容器ID   #停止正在运行的容器
docker kill 容器ID   #强制停止容器
docker stop $(docker ps -aq)  #停止全部容器

#删除容器
docker rm 容器ID (不能删除正在运行的容器)
docker rm -f $(docker ps -aq) #强制删除

八、操作防火墙命令

systemctl start firewalld.service  #开启服务
systemctl enable firewalld.service  #设置开机启动
systemctl stop firewalld  #关闭防火墙
firewall-cmd --list-ports  #查看开启了哪些端口号
sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp #添加端口号
firewall-cmd --reload  #操作防火墙后要重启防火墙

若大家需要更加透彻的了解和使用docker,在这里给大家推荐一篇完整性很强的文章:
docker入门(利用docker部署web应用)

在这里插入图片描述

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

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

相关文章

生产制造业ERP管理系统财务管理解决方案

对于生产制造型企业来说&#xff0c;良好的资金运营管理机制是企业长期、稳定、健康发展的保证。因此&#xff0c;企业急需借助生产制造业ERP管理系统&#xff0c;不断加强企业财务管理&#xff0c;从而有效提升企业的经营效率&#xff0c;降低财务风险&#xff0c;缓解资金成本…

云渲染答疑:动画渲染价格一般多少?

云渲染是什么&#xff1f;云渲染就是通过互联网将用户本地需要渲染的文件上传到云端服务器中&#xff0c;再通过云端庞大的计算机集群资源进行运算操作&#xff0c;帮助用户在云端完成渲染工作后&#xff0c;用户再下载到本地的过程&#xff0c;整个过程操作十分简便。云渲染动…

【云原生进阶之容器】第二章Controller Manager原理2.5节--DeltaFIFO剖析

5 DeltaFIFO DeltaFIFO是K8s中用来存储处理数据的Queue,相较于传统的FIFO,它不仅仅存储了数据保证了先进先出,而且存储有K8s 资源对象的类型,它的作用是保证Reflector和Indexer之间对象同步。其是连接Reflector(生产者)和indexer(消费者)的重要通道。其核心处理流程如下: …

android 换肤框架搭建及使用 (3 完结篇)

本系列计划3篇: Android 换肤之资源(Resources)加载(一)setContentView() / LayoutInflater源码分析(二)换肤框架搭建(三) — 本篇 tips: 本篇只说实现思路,以及使用,具体细节请下载代码查看! 本篇实现效果: fragment换肤recyclerView换肤自定义view属性换肤打开打开打开动…

解决第三方图片403问题

第三方平台怎么处理图片资源保护的? 服务端一般使用 Referer 请求头识别访问来源&#xff0c;然后处理资源访问。 Referer 是什么东西? 扩展参考: http://www.ruanyifeng.com/blog/2019/06/http-referer.html Referer是 HTTP 请求头的一部分&#xff0c;当浏览器向 Web 服务…

HTML实现舔狗日记

演示 css html, body {background: radial-gradient(#181818, #000000);margin: 0;padding: 0;border: 0;-ms-overflow-style: none;}::-webkit-scrollbar {width: 0.5em;height: 0.5em;background-color: #c7c7c7;}/*定义滚动条轨道 内阴影圆角*/::-webkit-scrollbar-track {…

不会写代码?也不懂技术?3分钟搭建电商cps系统搞副业

大家好&#xff0c;我是小悟 唠唠家常 以前见面聊天&#xff0c;大家都习惯性会问“你吃饭了吗”&#xff0c;现在大家一出口就是“你阳了吗”。2023年元旦过去了&#xff0c;你还阳着么&#xff1f;不出意外的话就会出意外&#xff0c;小悟也已经中招过了&#xff0c;在家躺…

【Linux】tcpdump命令详解

1、列出本机所有的网卡接口 tcpdump -D2、捕获特定网口的数据包 tcpdump -i bond0.1083、捕获具体数量的数据包 tcpdump -c 5 -i eth04、捕获的数据包保存到指定的文件 tcpdump -w 0001.pcap -i eth05、捕获的数据包显示IP而不

E4402B频谱分析仪

18320918653 E4402B E4402B|Agilent|3G|频谱分析仪|安捷伦|9kHz至3GHz 品牌&#xff1a;安捷伦 Agilent 惠普 HP 测量速度&#xff1a;28次更新/秒 测量精度&#xff1a;1dB 可选用的10Hz分辨事宽滤波器 机箱可容纳6插槽选件卡 97dB三阶动态范围 能在现场使用的坚固&a…

(1分钟速览)SLAM问题中一般方程和超定方程的求解

今天在学习的过程中偶然看到了一个博客&#xff0c;总结Axb的&#xff0c;那么我也写一篇。首先就是判断A的秩和(A|b)的秩之间的关系&#xff0c;然后通过这个关系来进行进一步地判断。编辑切换为居中添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;求解方…

RabbitMQ通配符模式

&#x1f341;博客主页&#xff1a;&#x1f449;不会压弯的小飞侠 ✨欢迎关注&#xff1a;&#x1f449;点赞&#x1f44d;收藏⭐留言✒ ✨系列专栏&#xff1a;&#x1f449;Linux专栏 &#x1f525;欢迎大佬指正&#xff0c;一起学习&#xff01;一起加油&#xff01; 目录&…

Jenkins安装方式之war包及相关环境配置

持续创作&#xff0c;加速成长&#xff01;这是我参与「掘金日新计划 10 月更文挑战」的第4天&#xff0c;点击查看活动详情 最近总有小伙伴发私信问我jenkins如何以war形式运行&#xff1f;以及运行后如何添加相关的环境配置&#xff0c;这里我就给大家贴出我的解决方案&…

Bandit算法学习[网站优化]04——UCB(Upper Confidence Bound) 算法

Bandit算法学习[网站优化]04——UCB(Upper Confidence Bound) 算法 参考资料 White J. Bandit algorithms for website optimization[M]. " O’Reilly Media, Inc.", 2013.https://github.com/johnmyleswhite/BanditsBookUCB算法原理及其在星际争霸比赛中的应用Aue…

Springboot 接口为null的值不返回对应的key

偶然听到两个应届生一段对话&#xff0c;一个后端&#xff0c;一个前端 。 前端&#xff1a; 大哥&#xff0c;你没有值就不要返回那个key行不行&#xff1f; 后端&#xff1a; 什么我看看。 后端&#xff1a; 这是本来返回值实体有的&#xff0c;不是必填&#xff0c;所以n…

Lua 元表及常见元方法

一、什么是元表 Lua 中的 table 使用起来有点像c中的 map 或者 unordered_map &#xff0c;都是通过对应的key 获取对应的value。如果访问了表中不存在的key时&#xff0c;就会触发Lua的一种机制&#xff0c;Lua也正是凭借这个机制可以用来模拟类似“继承”的行为&#xff0c;…

低代码能够为企业带来什么?

目录 1、为企业快速开发应用赋能 2、低成本使用数字化工具 3、满足企业定制化需求 大数据时代的快速发展下&#xff0c;传统的应用开发技术手段渐渐地无法满足企业的高需求。并且&#xff0c;企业想在应用开发的基础上同时实现个性化定制&#xff0c;而传统的技术条件所需要…

Linux 进程概念(一)

目录 一、冯诺伊曼体系结构 二、操作系统&#xff08;Operator System) 2.1 操作系统如何管理硬件&#xff1f; 2.2 操作系统如何管理软件&#xff1f; 2.3 一张图带你直观了解OS管理过程 三、进程&#xff08;启示录&#xff09; 3.1 进程的基本概念 3.1.1 进程PCB 3…

寒假本科创新——机器学习(二)

绪论1.3归纳偏好 一般原则&#xff1a;奥卡姆剃刀 什么样的算法比较好&#xff1f;1.4NFL定理 NFL定理的前提&#xff1a; NFL定理的寓意&#xff1a;1.3归纳偏好 归纳偏好&#xff08;lnductive Bias&#xff09;&#xff1a; 机器学习算法在学习过程中对某种类型假设的偏好…

sql语句练习2

1、列出至少有一个员工的所有部门编号、名称&#xff0c;并统计出这些部门的平均工资、最低工资、最高工资 做法&#xff1a; 第一步&#xff1a;找出至少有一个员工的部门编号mysql>select deptno,count(empno)from empgroup by deptnohaving count(empno)>0; 第二步: …

node.js快速入门指南

Node.js迅速蹿红&#xff0c;衍生了一个强大的开源社区、支持企业&#xff0c;甚至还拥有属于自己的技术大会。我把这种成功归结于它的简介&#xff0c;高校&#xff0c;同时提高了编程生产力。 Node.js 的前置知识很多&#xff0c;例如以下知识 JavaScriptES6Ajax 还不会的…