docker를 사용하여 nginx에서 제공하는 웹 서비스를 설치하는 방법
1. 이미지 가져오기
docker pull 명령은 애플리케이션 이미지를 가져오는 데 사용되며, docker pull nginx
명령은 nginx 이미지의 최신 버전을 가져오는 데 사용됩니다. 다음은 이미지 가져오기 프로세스의 응답 결과입니다. docker pull nginx
命令用于拉取最新版本的nginx镜像。下文为拉取镜像过程的响应结果:
# docker pull nginx Using default tag: latest latest: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
从上文我们可以看出nginx镜像是从docker.io
这个网址拉取下来的。
使用docker images
命令可以查看当前操作系统中下载了哪些镜像文件。
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 12766a6745ee 33 hours ago 142MB hello-world latest feb5d9fea6a5 6 months ago 13.3kB
REPOSITORY镜像仓库及镜像名称,如果不显示镜像仓库,默认就是
docker.io
TAG镜像的版本或者是里程碑标签,latest表示最新版本
IMAGE ID 镜像的唯一标识
CREATED 这个镜像被创建的时间
SIZE表示镜像文件的大小
二、运行镜像启动容器
通过docker run
命令启动一个容器,容器名称为nginx-zimug。
# docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
表示容器在后台运行--name
为容器起一个名字-p
端口映射,格式为宿主机端口:容器端口
,上文中含义是将容器中的端口80映射到宿主机的端口80,对外提供访问服务。最后一个字段为镜像名称
当浏览器通过HTTP协议访问宿主机的80端口时,可以省略端口号。得到的访问结果如下,说明我们的nginx服务已经启动成功了。
通过docker ps
可以查看正在运行中的容器,如下所示:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-zimug
三、文件映射
首先明确的是容器中的文件内容是可以被修改的,但是一旦容器重启,所有写入到容器中的,针对数据文件、配置文件的修改都将丢失。所以为了保存容器的运行状态,执行结果,我们需要将容器内的一些重要的数据文件、日志文件、配置文件映射到宿主机上。
以nginx为例,nginx有三个重要的文件目录:
容器中路径 | 宿主机中自定义映射路径 | |
---|---|---|
存储网站网页的目录 | /usr/share/nginx/html | /root/nginx/html |
nginx配置文件目录 | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
日志目录 | /var/log/nginx | /root/nginx/logs |
在宿主机中新建文件目录
mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf;
将容器中的文件copy到宿主机中
将nginx配置文件copy到宿主机中
docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;
将一个模拟的html文件放入html目录
将下面的文件保存为index.html放入宿主机的/root/nginx/html
目录,因为存在映射关系,实际上也是放入了容器的/usr/share/nginx/html
目录。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>使用docker搭建nginx web服务</title> </head> <body> <h2 id="访问成功">访问成功</h2> <p>厉害了!</p> </body> </html>
四、再次启动容器服务
-v
参数表达了宿主机文件与容器中文件的映射关系,格式为-v 宿主机目录:容器文件系统目录
。启动一个新的容器,容器的名字叫做nginx-prod
docker run -d -p 80:80 \ --name nginx-prod \ -v /root/nginx/html:/usr/share/nginx/html \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/logs:/var/log/nginx nginx
在启动新容器之前,将nginx-zimug旧的容器删掉。如果不删除旧的容器,新容器的端口与旧容器端口会发生冲突。使用如下命令删除容器:
docker stop nginx-zimug; docker rm nginx-zimug;
执行上面的docker run
rrreee
docker.io
URL에서 가져온 것을 알 수 있습니다. docker Images
명령을 사용하여 현재 운영 체제에 다운로드된 이미지 파일을 확인하세요.
REPOSITORY 이미지 웨어하우스 및 이미지 이름. 이미지 웨어하우스가 표시되지 않는 경우 기본값은
docker.io
입니다. >TAG 이미지의 버전 또는 마일스톤 태그, 최신은 최신 버전을 의미합니다
- IMAGE ID 이미지의 고유 식별자🎜
- 🎜CREATED 이 이미지는 생성되었습니다🎜
- 🎜SIZE는 이미지 파일의 크기를 나타냅니다🎜
를 통해 컨테이너를 시작합니다. docker run
명령이고 컨테이너 이름은 nginx-zimug 입니다. 🎜rrreee- 🎜
-d
는 컨테이너가 백그라운드에서 실행 중임을 의미합니다🎜 - 🎜
--name
컨테이너에 이름을 지정하세요🎜 - 🎜
-p
포트 매핑, 형식은호스트 포트:컨테이너 포트
, 위의 의미는 다음과 같습니다. 컨테이너를 포트 80에 넣는 것은 호스트의 포트 80에 매핑되어 외부 액세스 서비스를 제공합니다. 마지막 필드는 이미지 이름입니다🎜

docker ps
를 통해 아래와 같이 실행 중인 컨테이너를 볼 수 있습니다. 🎜rrreee🎜3.파일 매핑🎜🎜우선 컨테이너의 파일 내용을 수정할 수 있다는 점은 분명하지만컨테이너를 다시 시작한 후에는 컨테이너에 기록된 데이터 파일 및 구성 파일에 대한 모든 수정 사항이 손실됩니다. 따라서 컨테이너의 실행 상태와 실행 결과를 저장하기 위해서는 컨테이너에 있는 일부 중요한 데이터 파일, 로그 파일, 구성 파일을 호스트에 매핑해야 합니다. nginx를 예로 들어 보겠습니다. nginx에는 세 가지 중요한 파일 디렉터리가 있습니다: 🎜
컨테이너의 경로 | 호스트 시스템의 사용자 정의 매핑 경로||
---|---|---|
웹사이트 페이지 저장을 위한 디렉터리 | /usr/share/nginx/ html | /root/nginx/html |
nginx 구성 파일 디렉터리 | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
로그 디렉터리 | /var/log/nginx | / root/nginx/logs |
nginx 구성 파일을 호스트 머신에 복사🎜rrreee🎜시뮬레이션된 html 파일을 html 디렉토리에 넣기
저장 인덱스 .html인 다음 파일은 호스트의
/root/nginx/html
디렉토리에 배치됩니다. 매핑 관계로 인해 실제로는 컨테이너의 /usr/share/nginx/에 배치됩니다. html
목차. 🎜rrreee🎜4. 컨테이너 서비스를 다시 시작하세요🎜🎜 -v
매개변수는 호스트 파일과 컨테이너 내 파일 간의 매핑 관계를 표현합니다. 형식은 -v 호스트 디렉터리: 컨테이너 파일 시스템입니다. 디렉토리. 새 컨테이너를 시작합니다. 컨테이너 이름은 nginx-prod🎜rrreee🎜입니다. 새 컨테이너를 시작하기 전에 이전 nginx-zimug 컨테이너를 삭제하세요. 이전 컨테이너가 삭제되지 않으면 새 컨테이너의 포트가 이전 컨테이너의 포트와 충돌하게 됩니다. 컨테이너를 삭제하려면 다음 명령을 사용하세요. 🎜rrreee🎜위의 <code>docker run
명령을 실행하여 새 컨테이너를 시작하세요. 구동 후 브라우저를 통해 호스트의 포트 80에 접속하면 아래와 같이 응답 결과가 나오며, 이는 nginx가 정상적으로 웹 서비스를 제공하고 있음을 증명합니다. 🎜🎜🎜🎜🎜동시에 호스트 시스템에서 nginx 구성을 수정하고 런타임 로그 파일을 볼 수 있습니다. 구성 파일을 변경하면 호스트와 컨테이너의 구성 파일 간에 매핑 관계가 있으므로 컨테이너에서 실행되는 nginx 서비스에 영향을 미칩니다. 🎜🎜🎜🎜위 내용은 docker를 사용하여 nginx에서 제공하는 웹 서비스를 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

도커 컨테이너를 종료하는 4 가지 명령 사용 Docker Kill & lt; Container_name & gt; 호스트 터미널의 명령 (힘 출구)

Docker의 외부 호스트에 파일을 복사하는 방법 : Docker CP 명령 사용 : Docker CP 실행 [옵션] & lt; 컨테이너 경로 & gt; & lt; 호스트 경로 & gt;. 데이터 볼륨 사용 : 호스트에서 디렉토리를 만들고 -V 매개 변수를 사용하여 양방향 파일 동기화를 달성하기 위해 컨테이너를 만들 때 컨테이너에 디렉토리를 장착하십시오.

Docker 컨테이너를 다시 시작하는 방법 : 컨테이너 ID (Docker PS)를 가져옵니다. 컨테이너 중지 (Docker Stop & lt; container_id & gt;); 컨테이너를 시작하십시오 (Docker start & lt; container_id & gt;); 재시작이 성공했는지 확인하십시오 (Docker PS). 기타 방법 : Docker Compose (Docker-Compose Restart) 또는 Docker API (Docker 문서 참조).

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

도커 프로세스보기 방법 : 1. Docker CLI 명령 : Docker PS; 2. Systemd Cli 명령 : SystemCTL 상태 Docker; 3. Docker Compose CLI 명령 : Docker-Compose PS; 4. 프로세스 탐색기 (Windows); 5. /Proc Directory (Linux).

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.
