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

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应用)

在这里插入图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
Docker是一种开源的容器化平台,它允许开发者将应用程序和其依赖的环境打包到一个独立的容器中,并可以在任意环境中进行部署。以下是Docker快速入门步骤: 1. 首先,你需要安装Docker。你可以参考Docker官方文档或使用docker-install脚本来安装Docker。 2. 安装完成后,启动Docker并查看其状态。Docker有一个客户端和一个守护进程。客户端与守护进程进行通信来执行Docker命令。你可以运行以下命令来查看Docker的状态: ``` docker info ``` 3. 接下来,你可以开始使用Docker镜像。Docker镜像是一个只读的模板,用于创建Docker容器。你可以通过运行以下命令来搜索和下载Docker镜像: ``` docker search <image-name> docker pull <image-name> ``` 4. 一旦你下载了一个Docker镜像,你可以使用它来创建一个运行的容器。容器是从镜像创建的可运行实例。你可以运行以下命令来创建并启动一个容器: ``` docker run <image-name> ``` 这将会在一个新的容器中运行指定的镜像。 5. 最后,你可以使用Docker Registry来存储和分享你的Docker镜像。Docker Registry是一个仓库,用于存储Docker镜像。当你使用docker push命令将镜像推送到Registry时,实际上是通过Docker守护进程与Registry进行通信。 这些是Docker快速入门步骤,希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker快速入门,看这个就够了](https://blog.csdn.net/qq_39578545/article/details/107741565)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱飞行的小应学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值