Docker架构及常用的命令

一、初识Docker

1、 docker是一个快速交付应用、运行应用的技术,具备下列优势:

  • 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  • 运行时利用沙箱机制形成隔离容器,各个应用互不干扰
  • 启动、移除都可以通过一行命令完成,方便快捷

2、镜像和容器

镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

3、DockerHub 镜像托管平台

DockerHub是一个官方的Docker镜像的托管平台。这样的平台称为Docker Registry

4、Docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令

二、CentOS安装Docker及启动

1、安装yum工具

yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken

2、如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce

3、设置docker本地镜像源

yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast

4、开始安装docker-ce

docker-ce为社区免费版本

yum install -y docker-ce

Docker应用需要用到各种端口,如果只是练习建议直接关闭防火墙!否则就去释放对应的端口就行

5、关闭防火墙

  • 关闭 systemctl stop firewalld
  • 禁止开机启动防火墙 systemctl disable firewalld

6、启动Docker服务

  • systemctl start docker # 启动docker服务
  • systemctl stop docker # 停止docker服务
  • systemctl restart docker # 重启docker服务
  • systemctl enable docker #开机自启

使用docker -v查询docker版本,systemctl status docker查询启动状态

三、镜像基本操作及命令

1、镜像名称组成规则

镜像名称一般分两部分组成:[repository]:[tag]。 在没有指定tag时,默认是latest,代表最新版本的镜像。例如mysql:5.7mysql是repository ,5.7则是tag
在这里插入图片描述

2、镜像命令

常见的镜像操作命令如图:
在这里插入图片描述

2.1 查看镜像(docker images)

docker images

2.2 删除镜像(docker rmi)

docker rmi 例如:docker rmi nginx:latest

2.3 拉取镜像(docker pull)

docker pull 例如:docker pull nginx

需求:从DockerHub中拉取一个nginx镜像并查看

1)首先去镜像仓库搜索nginx镜像,建议找官方的)
在这里插入图片描述

2)点进去详情,复制docker pull nginx命令
在这里插入图片描述
在这里插入图片描述

2.4 保存镜像(docker save)

docker save 例如:docker save -o nginx.tar nginx:latest 将nginx:latest保存为nginx.tar

2.5 导入镜像(docker load)

docker load 例如:docker load -i nginx.tar

四、容器基本操作及命令

1、容器命令

容器操作的命令如图:
在这里插入图片描述
容器保护三个状态:

  • 运行:进程正常运行
  • 暂停:进程暂停,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存、CPU等资源
1.1 创建并运行一个容器(docker run)

docker run 例如: docker run --name mn -p 8080:80 -d nginx

命令解读:

  • docker run :创建并运行一个容器
  • –name : 给容器起一个名字,比如叫做mn
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx
1.2 让运行的容器暂停(docker pause)

docker pause 例如:docker pause mn

1.3 让容器从暂停状态恢复运行(docker unpause)

docker unpause 例如:docker unpause mn

1.4 停止运行的容器(docker stop)

docker stop 例如:docker stop mn

1.5 让停止的容器再次运行(docker start)

docker start 例如:docker start mn

1.6 删除容器(docker rm)

docker rm 例如:docker rm mn,如果该容器未处于暂停的状态下删除,则会失败。可使用 docker rm -f mn 强制删除

1.7 查看运行的容器及状态(docker ps)

docker ps 仅查看运行的容器,如想查全部的容器可用 docker ps -a

1.8 进入某个容器

docker exec -it mn bash 命令解读:

  • docker exec :进入容器内部,执行一个命令
  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn :要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个linux终端交互命令

四、常用的容器基本创建及运行命令

Nginx

docker run --name containerName -p 8081:80 -d nginx

命令解读:

  • docker run :创建并运行一个容器
  • –name : 给容器起一个名字,比如叫做mn
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口,也就是说用户可以通过主机名+8081访问到容器的nginx
  • -d:后台运行容器
  • nginx:镜像名称
Redis

docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
命令解读:

  • docker run :创建并运行一个容器
  • –name : 给容器起一个名字,比如叫做mr
  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口,也就是说用户可以通过主机名+6379访问到容器的redis
  • -d:后台运行容器
  • redis:镜像名称
  • -redis-server –appendonly yes 在容器执行redis-server启动命令,并打开redis持久化配置
  • 努力学习中,多多指教~~~

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区分node,npm,nvm

目录 一,nodejs二,npm三,nvm 区分node,npm,nvm 几年前学习前端的时候学习的就是htmlcssjs 三件套。 现在只学习这些已经不能满足需要了。 一,nodejs nodejs是编程语言javascript运行时环境。(比…

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建PG开源数据库

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器(Elastic Compute Cloud)是亚马…

机器学习应用 | 使用 MATLAB 进行异常检测(上)

异常检测任务,指的是检测偏离期望行为的事件或模式,可以是简单地检测数值型数据中,是否存在远超出正常取值范围的离群值,也可以是借助相对复杂的机器学习算法识别数据中隐藏的异常模式。 在不同行业中,异常检测的典型…

【已解决】ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘

问题描述 ImportError: cannot import name ‘Merge‘ from ‘keras.layers‘ 解决办法 1、tensorflow和keras版本要对应; 2、使用"merge" pip uninstall keras pip install keras2.3.1 from keras.layers import merge完结撒花 我这血中带泪的成长&…

node后端接口无法插入数据为emoji的表情的问题

原因 emoji的表情一般是这样的\xF0\x9F\x98\x80或者是\xF0\x9F\x98 ,事实上 一般数据库的utf8的编码类型都是能保存\xF0\x9F\x98 但是不能保存\xF0\x9F\x98\x80这种样的emoji,要将数据库编码格式为utf8mb4 也就是utf8的超集 另外,除了 数据库…

LCM-LoRA:a universal stable-diffusion acceleration module

Consistency is All You Need - wrong.wang什么都不用做生成却快了十倍其实也并非完全不可能https://wrong.wang/blog/20231111-consistency-is-all-you-need/ 1.Stable diffusion实在预训练VAE空间训练diffusion model的结果。 2.consistency decoder是用consistency model技…

【银行测试】第三方支付平台业务流,功能/性能/安全测试方法...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、第三方支付平台…

flask 数据库迁移可能出现的六大问题,生成requirements文件夹方式,flask项目复写,

今日任务 项目分级显示 — app — — admin 代表 — — auth 代表用户的点赞 评论 登录等等 — — blog 代表blog的网页 首先单独把auth运行出来 第一步 1. 生成requirements文件夹 2.在一个新的虚拟环境里面完成requirements依赖下载 3.完成项目的复写 1. 生成requ…

js/jQuery常见操作 之 jQuery操作复选框的常见问题

js/jQuery常见操作 之 jQuery操作复选框的常见问题 1. js/jQuery的其他一些常见基础操作2. 全选/全不选问题2.1 效果2.2 实现代码2.2.1 简单js实现2.2.2 jQuery实现2.2.2.1 注意语法(区别jQuery版本)2.2.2.2 完整代码实现 3. jQuery实现点击 行tr 实现ch…

OpenCV交叉编译

1.下载代码解压 tar -zxvf opencv-4.8.1.tar.gz cd cd opencv-4.8.1 sudo mkdir chmod 777 build cd build 2.配置交叉编译工具 根据自己的板子进行修改 -D CMAKE_C_COMPILERaarch64-mix210-linux-gcc -D CMAKE_CXX_COMPILERaarch64-mix210-linux-g 3.cmake生成makefi…

C#winform上下班打卡系统Demo

C# winform上下班打卡系统Demo 系统效果如图所示 7个label控件(lblUsername、lblLoggedInEmployeeId、lab_IP、lblCheckOutTime、lblCheckInTime、lab_starttime、lab_endtime)、3个按钮、1个dataGridView控件、2个groupBox控件 C#代码实现 using System; using System.Dat…

WEB组态编辑器(BY组态)介绍

BY组态是一款非常优秀的纯前端的【web组态插件工具】,可无缝嵌入到vue项目,react项目等,由于是原生js开发,对于前端的集成没有框架的限制。同时由于BY组态只是一个插件,不能独立运行,必须嵌入到你方软件平台…