当前位置: 首页 > news >正文

Docker 基础使用 (1)

文章目录

  • Docker 软件安装
  • Docker 镜像仓库
  • Docker 仓库指令
  • Docker 镜像指令
  • Docker 容器指令
  • Docker 使用实例 —— 搭建 nginx 服务
    • nginx 概念
    • nginx 使用
    • 用 docker 启动 nginx

侧重对docker基本使用的概览。

Docker 软件安装

Linux Ubuntu 依次执行以下指令即可

# 更新软件包列表和安装最新的软件包
sudo apt update
sudo apt upgrade# 安装Docker的依赖包
sudo apt install apt-transport-https ca-certificates curl software-properties-common# 添加Docker的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 添加Docker的软件源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"# 安装Docker
sudo apt update
sudo apt install docker-ce# 检查Docker是否成功安装
sudo docker --version

Docker 镜像仓库

前面提到, Docker精选和容器关系类似于程序和进程的关系,程序被执行后才有进程。 镜像被启动之后才会产生容器。镜像被存储在例如docker Hub的服务器, docker Hub 类似于GitHub,核心功能为在服务器存储镜像。我们可以在docker Hub上创建自己的镜像仓库,用于远程存储镜像。

在这里插入图片描述

镜像仓库按是否对外开放划分:
(1)公有仓库:像阿里云、dockerhub 等放到公有网络上,不用登录就可以下载镜像,供大家访问使用
(2)私有仓库:不对外开放,往往位于私有网络,只有公司内部人员可以使用。按供应商和面向群体划分
(1)sponsor(赞助) registry:第三方的 registry,供客户和 docker 社区版使用。
(2)mirror(镜像) registry:第三方的 registry,只让客户使用。
(3)vendor(供应商) registry:由发布 docker 镜像的供应商提供的 registry。
(4)private registry:通过没有防火墙和额外的安全层的私有实体提供的 registry。

Docker 仓库指令

# 登录 Docker 镜像仓库
# 如果未指定镜像仓库地址,默认为官方仓库 Docker
docker login [OPTIONS] [SERVER]
--help:显示帮助信息,列出所有可用选项。
-u, --username:指定用户名进行登录。
-p, --password:指定密码进行登录。
-e, --email:指定邮箱进行登录。# 从镜像仓库中拉取或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
--help:显示帮助信息,列出所有可用选项。
--all-tags:拉取镜像仓库中所有标签的镜像。
--disable-content-trust:禁用镜像内容信任验证。
--platform:指定要拉取的镜像的平台架构。
--quiet, -q:安静模式,只输出拉取进度信息。# 将本地的镜像上传到镜像仓库(要先登陆到镜像仓库)
docker push <REPOSITORY:TAG>
--all-tags:推送指定仓库中的所有标签。
--disable-content-trust:禁用镜像内容信任验证。
--quiet, -q:安静模式,只输出推送进度信息。# 从 Docker Hub 查找镜像
# TERM为镜像名
docker search [OPTIONS] TERM
--no-trunc :显示完整的镜像描述
-f <过滤条件>:列出收藏数不小于指定值的镜像
--limit 5:返回前5个相关的镜像#登出一个 Docker 镜像仓库
#如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout [SERVER]

Docker 镜像指令

#  列出本地环境中已有的镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像 ID# 查看镜像详细信息
docker image inspect [OPTIONS] IMAGE [IMAGE...]# 标记本地镜像,将其归入某一仓库
# SOURCE_IMAGE[:TAG]:源镜像的名称和标签。
# TARGET_IMAGE[:TAG]:目标镜像的名称和标签
# docker image tag old-image:latest new-image:latest
docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Docker 容器指令

# 创建一个新的容器并运行一个命令
# ARG...:可选参数,传递给容器中执行的命令的参数。
# IMAGE:要运行的镜像名称。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]-d: 后台运行容器,并返回容器 ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
-h "mars": 指定容器的 hostname;
-e username="ritchie": 设置环境变量;
--cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
-m :设置容器使用内存最大值;
--network="bridge": 指定容器的网络连接类型;
--link=[]: 添加链接到另一个容器;
--volume , -v: 绑定一个卷
--rm :shell 退出的时候自动删除容器
# 列出容器
docker ps [OPTIONS]
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。如 json 或者 table
-l :显示 latest 的容器。
-n :列出最近创建的 n 个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

Docker 使用实例 —— 搭建 nginx 服务

nginx 概念

Nginx是一个开源的高性能的HTTP和反向代理服务器,也可以用作邮件代理服务器。它具有低内存消耗、高并发能力和强大的反向代理特性,常用于构建性能优越的Web服务器和承载高流量网站。

nginx 使用

nginx 简易的搭建一个网站很简单,只需执行以下指令即可

# 安装nginx
apt install nginx -y# 产看nginx版本验证是否安装成功
nginx -v# 手动启动。 一般nginx安装后会自动启动
nginx # 查看是否启动成功
ps -aux | grep nginx# 关闭nginx服务 
kill nginx_pid

之后再浏览器中访问启动的nginx服务即可,nginx默认端口为80,默认前端代码在/usr/share/nginx/html 目录下查看(Linux Ubuntu)。默认前端页面可以配置。

在这里插入图片描述
在这里插入图片描述

用 docker 启动 nginx

在这里插入图片描述
在这里插入图片描述

下图指令说明:
–name nginx1:为容器指定名称为 nginx1。
–rm:容器退出后立即删除。
-it:以交互模式运行容器,可以进行交互式操作。
-p 81:81:将容器的81端口映射到主机的81端口,允许通过主机的81端口访问容器内的服务。
nginx:1.23.3:要运行的镜像名称及版本。
bash:覆盖镜像中指定的默认命令,以 bash 终端启动容器。
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 【html项目实战】年长者便捷上网中心
  • word如何创造新的格式标题
  • 浙江大学数据结构MOOC-课后习题-第十讲-排序4 统计工龄
  • 软件程序设计规范(代码编写规范文档)-word下载
  • Clickhouse 算术函数操作总结—— Clickhouse 基础篇(五)
  • SpringBoot搭建OAuth2
  • xLua背包实践
  • 电机控制系列模块解析(25)—— 过压抑制与欠压抑制
  • Github 2024-05-29 C开源项目日报 Top10
  • 如何防止重复提交请求?
  • 【Postman接口测试】第二节.Postman界面功能介绍(上)
  • leetcode热题100.完全平方数(动态规划进阶)
  • 如何找到docker的run(启动命令)
  • 什么是以太坊?
  • 多线程-线程池
  • ES6指北【2】—— 箭头函数
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android优雅地处理按钮重复点击
  • Docker容器管理
  • ES6简单总结(搭配简单的讲解和小案例)
  • HTML5新特性总结
  • jQuery(一)
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Mac转Windows的拯救指南
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Spark学习笔记之相关记录
  • SpringBoot 实战 (三) | 配置文件详解
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Yii源码解读-服务定位器(Service Locator)
  • 回顾2016
  • 前端性能优化——回流与重绘
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • ​卜东波研究员:高观点下的少儿计算思维
  • #WEB前端(HTML属性)
  • #数学建模# 线性规划问题的Matlab求解
  • (1)(1.9) MSP (version 4.2)
  • (20)docke容器
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (30)数组元素和与数字和的绝对差
  • (7)摄像机和云台
  • (9)STL算法之逆转旋转
  • (function(){})()的分步解析
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (八)c52学习之旅-中断实验
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (数据结构)顺序表的定义
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)菜鸟学数据库(三)——存储过程
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *算法训练(leetcode)第四十天 | 647. 回文子串、516. 最长回文子序列
  • . Flume面试题