本文以nginx为例,讲述了如何在linux机器上使用docker来快速启动一个nginx服务。
1) 登陆docker hub账号
首先登陆你的docker hub的账号。
test@linux:~/dockerProject> docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: xxxxxxx
Password:
Login Succeeded
2) 查找nginx服务
通过search命令在docker hub上查找nginx的image信息,输出的结果中标记为OFFICIAL的image是docker官方提供的,可以放心使用,如下图中的第一行就是官方版本。
test@linux:~/dockerProject> docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 14574 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1984 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 810 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ... 162
linuxserver/nginx An Nginx container, brought to you by Linu... 142
tiangolo/nginx-rtmp Docker image with Nginx using the nginx-rt... 117 [OK]
jlesage/nginx-proxy-manager Docker container for Nginx Proxy Manager 97 [OK]
bitnami/nginx Bitnami nginx Docker Image 94 [OK]
alfg/nginx-rtmp NGINX, nginx-rtmp-module and FFmpeg from s... 89 [OK]
jasonrivers/nginx-rtmp Docker images to host RTMP streams using N... 88 [OK]
nginxdemos/hello NGINX webserver that serves a simple page ... 67 [OK]
nginx/nginx-ingress NGINX Ingress Controller for Kubernetes 49
privatebin/nginx-fpm-alpine PrivateBin running on an Nginx, php-fpm & ... 49 [OK]
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 32
staticfloat/nginx-certbot Opinionated setup for automatic TLS certs ... 19 [OK]
schmunk42/nginx-redirect A very simple container to redirect HTTP t... 19 [OK]
nginx/nginx-prometheus-exporter NGINX Prometheus Exporter 16
centos/nginx-112-centos7 Platform for running nginx 1.12 or buildin... 15
centos/nginx-18-centos7 Platform for running nginx 1.8 or building... 13
raulr/nginx-wordpress Nginx front-end for the official wordpress... 13 [OK]
bitwarden/nginx The Bitwarden nginx web server acting as a... 10
mailu/nginx Mailu nginx frontend 8 [OK]
bitnami/nginx-ingress-controller Bitnami Docker Image for NGINX Ingress Con... 8 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX 2 [OK]
wodby/nginx Generic nginx 1 [OK]
3) 拉取nginx服务
使用pull命令将nginx的image下载到本地,如果nginx后面没有确定具体的版本信息,那么就是使用默认的latest版本的image
test@linux:~/dockerProject> docker image pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a076a628af6f: Pull complete
0732ab25fa22: Pull complete
d7f36f6fe38f: Pull complete
f72584a26f32: Pull complete
7125e4df9063: Pull complete
Digest: sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
Status: Downloaded newer image for nginx:latest
4) 查看nignx是否已经成功拉取到本地
使用ls命令查看image是否已经下载到本地了,从结果我们可以看到nginx:latest这个image已经成功下载下来了。
test@linux:~/dockerProject> docker image ls | grep nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f6d0b4767a6c 2 months ago 133MB
5) 启动nginx服务
这里我们使用docker container run命令启动一个nginx容器,其中-d选项表示在后台运行。
test@linux:~/dockerProject> docker container run -d nginx
c199bd8b64dd2306e0a72597264bd656fcd59bf2d1f4d6afd40db84b7ccf258a
6)查看nginx的container是否已经成功启动。
我们使用docker container ls命令查看nginx是否已经成功启动,从下面的结果可以看到, nginx容器已成功启动。但是由于port没有映射,无法从container外访问container,因此我们在浏览器上输入http://10.228.84.111:80,没有看到nginx的欢迎界面。另外container的名字也是一个默认值,需要修改为nginx, 以便于理解。
test@linux:~/dockerProject> docker container ls | grep nginx
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c199bd8b64dd