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 终端启动容器。

相关推荐
昌sit!6 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林7 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
A ?Charis9 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision9 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge9 小时前
Docker篇(Docker Compose)
运维·docker·容器
北漂IT民工_程序员_ZG10 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
梦魇梦狸º13 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
鬼才血脉13 小时前
docker+mysql配置
mysql·adb·docker
詹姆斯爱研究Java13 小时前
Docker 的基本概念和优势
docker
南猿北者15 小时前
docker镜像仓库常用命令
运维·docker·容器