网站首页 > 精选教程 正文
docker主要的3个概念:镜像(image)+容器(container)+仓库(repository)
- docker镜像:概念类似虚拟机的镜像,可以用来创建新的容器。
- docker仓库:docker仓库概念和git类似。docker仓库是用来包含镜像的位置。
- docker容器:是由docker镜像创建的运行实例。docker容器类似虚拟机,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
它们之间的关系可以参照下图:
我们在这个过程中熟悉经常使用的命令。
Docker 镜像和容器
- 镜像查询:
- 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。
学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。
猜你喜欢
- 2024-10-21 nginx快速入门 第1篇 nginx+
- 2024-10-21 Docker下使用disconf:细说demo开发
- 2024-10-21 不会Nginx Ingress可观测,你还算的上运维工程师吗?
- 2024-10-21 nginx 前端到底用来做啥 nginx配置vue前端工程和后端工程
- 2024-10-21 快速上手ES索引模版 es建索引技巧
- 2024-10-21 Elasticsearch-Alias别名的2个核心场景
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)