Docker 基础使用 (1)

文章目录

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

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

Docker 软件安装

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

cpp 复制代码
# 更新软件包列表和安装最新的软件包
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 仓库指令

bash 复制代码
# 登录 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 镜像指令

bash 复制代码
#  列出本地环境中已有的镜像
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 容器指令

bash 复制代码
# 创建一个新的容器并运行一个命令
# 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 退出的时候自动删除容器
bash 复制代码
# 列出容器
docker ps [OPTIONS]
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。如 json 或者 table
-l :显示 latest 的容器。
-n :列出最近创建的 n 个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

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

nginx 概念

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

nginx 使用

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

bash 复制代码
# 安装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 终端启动容器。

相关推荐
lihe75836 分钟前
DSM7.2部署可道云+onlyoffice在线办公系统
docker·onlyoffice·群晖·kodbox·docer-compose
君不见,青丝成雪9 小时前
网关整合验签
大数据·数据结构·docker·微服务·系统架构
oneslide13 小时前
Kubernetes环境部署Redis集群
redis·容器·kubernetes
企鹅侠客13 小时前
k8s之Headless浅谈
云原生·容器·kubernetes
SHIPKING39316 小时前
【Docker安装】Windows10专业版安装教程
运维·docker·容器
编程的一拳超人16 小时前
Docker核心概念、常用命令与实战指南
运维·docker·容器
编程的一拳超人16 小时前
Docker 核心命令速查表(精细分类版)
运维·docker·容器
风吹一夏v16 小时前
Docker 部署 GitLab 和 GitLab Runner 指南
docker·容器·gitlab
曦樂~16 小时前
【Docker】网络
docker·容器·php
刘晓倩16 小时前
Docker Desktop(Windows/Mac)零外网部署 Dify 极简指南
macos·docker·容器