JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

docker指令详解 docker常见指令

wys521 2024-10-05 04:42:52 精选教程 22 ℃ 0 评论

回顾

上篇文章我们通过以下两条指令完成了一个简易的nginx web服务器的运行

docker pull nginx
docker run -p 80:80 --name nginx-test nginx

docker工作原理

  1. 选取镜像

在远程仓库中,有着来之世界各地开发者分享的nginx镜像,我们通过以下指令搜索下可用的nginx镜像

docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        13047     [OK]
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker c...   1783                 [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable ...   768                  [OK]
linuxserver/nginx                  An Nginx container, brought to you by Linu...   107
bitnami/nginx                      Bitnami nginx Docker Image                      83                   [OK]
tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rt...   69                   [OK]
alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from s...   57                   [OK]
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ...   54
nginxdemos/hello                   NGINX webserver that serves a simple page ...   48                   [OK]
jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        38                   [OK]
nginx/nginx-ingress                NGINX Ingress Controller for Kubernetes         29
privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & ...   23                   [OK]
schmunk42/nginx-redirect           A very simple container to redirect HTTP t...   18                   [OK]
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  13
centos/nginx-112-centos7           Platform for running nginx 1.12 or buildin...   13
centos/nginx-18-centos7            Platform for running nginx 1.8 or building...   13
blacklabelops/nginx                Dockerized Nginx Reverse Proxy Server.          13                   [OK]
raulr/nginx-wordpress              Nginx front-end for the official wordpress...   12                   [OK]
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter                       11
sophos/nginx-vts-exporter          Simple server that scrapes Nginx vts stats...   7                    [OK]
mailu/nginx                        Mailu nginx frontend                            6                    [OK]
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Con...   5                    [OK]
ansibleplaybookbundle/nginx-apb    An APB to deploy NGINX                          1                    [OK]
wodby/nginx                        Generic nginx                                   1                    [OK]
centos/nginx-110-centos7           Platform for running nginx 1.10 or buildin...   0

正如上面列举到的,包括可用nginx镜像的描述,获取的star等。

  1. 拉取镜像

不出意外的,所有的可用nginx镜像中,官方的镜像获取的star最多。一般来说,我们使用官方的镜像更加可靠。

nginx pull nginx
  1. 涉及仓库的其他常用指令

登录

在企业开发中,生成的镜像显然不会开源的,如果我们需要拉取私有镜像,我们需要登录获取仓库权限的账号

docker login

注销

我们可以通过以下指令注销账号

docker logout

Docker image(镜像)

  1. 查看镜像

通过docker pull nginx,我们本地仓库将存在一个nginx镜像,通过以下指令可以查看本地仓库已有的镜像列表

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              602e111c06b6        3 days ago          126.8 MB
  1. 涉及镜像的其他常用指令

删除镜像

有时候,有些镜像我们不再需要的时候,为了节省空间,我们可以删除它

ocker rmi 602e111c06b6(镜像IMAGE ID)

Docker container(容器)

  1. 运行容器

镜像是无法直接运行并提供服务的,我们需要将镜像为模板,克隆出容器来运行。

docker run -p 80:80 --name nginx-test -d nginx


参数讲解

  • -p

容器我们可以认为是一个轻量的linux系统 + 环境(如nginx)+ 代码(静态html文件)组成,正如我们开发中接触的nginx一样,容器中的nginx默认监听容器的80端口,然而我们需要注意的是,我们无法通过物理主机直接通过访问容器的80端口,我们需要通过参数“-p 物理主机port:容器port”,来实现物理主机端口访问容器端口

  • --name

镜像可以认为是一个模板,可以生成多个相同的容器,我们可以通过--name来指定容器的名字加于区分

  • -d

如果我们直接以docker run -p 80:80 --name nginx-test nginx方式运行,释放了控制台意味着程序的退出,我们可以加入参数-d将容器以守护进程的方式运行

  1. 修改容器内容

启动的nginx首页默认为nginx欢迎页,我们希望能够换成自己的静态页面,我们将以下指令

docker run -p 80:80 --name nginx-test -d nginx

换成

docker run -v C:\\Users\\running-cat\\Desktop\\html:/usr/share/nginx/html -p 80:80 --name nginx-test -d nginx

html文件夹中的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    demo page!!!
</body>
</html>

效果


参数讲解

  • -v

将C:\Users\running-cat\Desktop\html文件夹下的所有文件同步同步到容器nginx的静态目录/usr/share/nginx/html下,这里需要注意的是两个字“同步”,意味着如果我们在C:\Users\running-cat\Desktop\html下修改文件,内容会实时响应在/usr/share/nginx/html的文件上

  1. 涉及容器的其他指令

停止容器

如果我们需要停止容器运行

docker stop nginx-test(容器名称或者容器id)

删除容器

当我们不再需要容器,或者想重新生成一个容器。注意:如果要删除一个容器,得确保先停止了容器的运行,否则无法删除。

docker rm nginx-test(容器名称或者容器id)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表