JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

快速熟悉docker常用命令(实例:创建nginx容器)

wys521 2024-10-21 10:53:29 精选教程 32 ℃ 0 评论

docker主要的3个概念:镜像(image)+容器(container)+仓库(repository)

  • docker镜像:概念类似虚拟机的镜像,可以用来创建新的容器。
  • docker仓库:docker仓库概念和git类似。docker仓库是用来包含镜像的位置。
  • docker容器:是由docker镜像创建的运行实例。docker容器类似虚拟机,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

它们之间的关系可以参照下图:

我们在这个过程中熟悉经常使用的命令。

Docker 镜像和容器

  • 镜像查询:
  1. docker hub镜像查询:https://hub.docker.com/search

2、docker search查询

我们也可以使用docker search:<镜像名称> 的方式来搜索镜像,但这种方式无法查询镜像tags,所以建议使用第一种。

各个选项说明:

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。
  • AUTOMATED: 自动构建。

拉取镜像(nginx 为例)

  • 拉取nginx镜像到本地

docker pull <镜像名称>:<镜像tags>,如果不加tags,默认拉取最新镜像(latest)。

docker pull nginx:latest

直接执行命令报错:

Got permission denied while trying to connect to the Docker daemon socket ….: connect: permission denied

我们使用su root 命令切换到root用户,再次执行命令即可。

使用docker images 命令即可查看已经拥有的镜像。

各个选项说明:

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

删除镜像

docker rmi <镜像名称>:<镜像tags>,如果不加tags,默认删除最新镜像(latest)。

docker rmi nginx:latest

创建容器

使用镜像创建一个 nginx容器

  • 创建挂载目录
mkdir -p /usr/local/nginx/{conf,html,logs}
  • 创建nginx.conf 配置文件

在/usr/local/nginx/conf下创建nginx.conf文件,作为外置配置文件使用。这样我们就可以很方便的配置nginx。

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}

在/usr/local/nginx/html目录下新建index.html,这个文件作为容器外部数据卷,替换默认首页。关于数据卷的概念,我们后期文章专门介绍。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Docker Nginx</title>
</head>
<body>
    <h1>Docker Nginx</h1>
    <p> Hello, Nginx.</p>
</body>
</html>
  • 执行容器创建命令
docker run -d -p 80:80 --name nginx80 --restart=always -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/logs/:/var/log/nginx nginx:latest

如果返回一长串字符即为成功。使用docker ps 即可看到已启动容器列表:

参数说明:

  • -d 后台运行
  • -p 设置端口映射 宿主机端口:容器端口
  • --name 设置容器别名
  • --restart=always 设置容器开机启动
  • -v 数据卷映射 宿主机目录:容器目录。这样方便我们管理容器配置文件及日志文件

最后加上nginx:latest,表示我们是以nginx:latest为模板创建的。

  • 浏览器访问

浏览器访问 http://192.168.85.128/ ,192.168.85.128是我虚拟机的端口。


这样我们就使用docker创建好了一个 nginx。


学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。


Tags:

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

欢迎 发表评论:

最近发表
标签列表