✨컨테이너 안의 파일들에 접근하는 방법
1.실행하고 있는 컨테이너와 호스트 사이의 파일 복사하기
컨테이너 안의 파일의 파일을 호스트로 복사해올 수도 있고, 호스트에 있는 파일을 복사해서 컨테이너에 집어넣을 수도 있음
실습
1. 도커 컨테이너, 이미지 만들기
1
| docker run --rm -d -p 8080:80 --name my_nginx nginx:latest
|
2. 쉘 붙이기
1
| docker exec -it my_nginx /bin/bash
|
3. 폴더 안에 들어 있는 HTML 파일 확인하기
1
| # cat /usr/share/nginx/html/index.html
|
💡결과
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| <!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html {
color-scheme: light dark;
}
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
</p>
<p>
For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br />
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.
</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
|
4. 미리 만들어둔 index.html를 컨테이너에 복사하기
1
| docker cp index.html my_nginx:/usr/share/nginx/html
|
localhost:8080 에 들어가서 새로고침을 해보면 기존의 index.html이 덮어써진 것을 확인할 수 있음
# 명령어 뜯어보기
1
| docker cp [파일명] [컨테이너_이름]:[경로]
|
5. 컨테이너에 있는 파일 호스트(로컬)로 복사하기
1
| docker cp my_nginx:/usr/share/nginx/html/50x.html .
|
현재 디렉토리(폴더)에 50x.html 파일이 복사된 것을 확인할 수 있음
# 명령어 뜯어보기
1
| docker cp [컨테이너_이름]:[복사할_파일의_경로] [저장할_경로]
|
2.이미지 빌드할 때 호스트로부터 파일을 컨테이너에 추가하기
Dockerfile안에 ADD
지시자를 활용(이미지를 만들 때 컨테이너에 집어넣는 방법)
1
| ADD [호스트_내_파일의_경로] [컨테이너_내_배치할_파일의_경로]
|
실습
1. Dockerfile에 코드 작성하기
1
2
3
4
| FROM nginx:latest
ADD ./index.html /usr/share/nginx/html/new.html
CMD [ "nginx", '-g','daemon off' ]
|
2. build 명령어로 컨테이너 생성하기
1
| docker build -t your_nginx .
|
3. 컨테이너 실행하기
1
| docker run --rm -d -p 8888:80 --name my_nginx your_nginx
|
실행되고 있는 서버(localhost:8888/new.html
)에 들어가보면, 잘 작동되는 것을 확인할 수 있음
3.바인드 마운트
-v
옵션으로 호스트의 특정 디렉토리(같은 내용)를 컨테이너와 공유
1
| docker run -v [호스트_경로]:[컨테이너_경로] [이미지]
|
실습
1. 컨테이너 실행하기
1
| docker run -it -v .:/host_dir ubuntu:22.04 /bin/bash
|
2. 파일이 잘 생성되었는지 확인하기
💡결과
1
| This is a test file called A.txt
|
3. 파일이 잘 생성되었다면, 새로운 파일 생성하기
1
2
| cat > /host_dir/B.txt
This is a test file called B.txt
|
편집을 완료할 때에는 ctrl + d
를 누르면 됨
4. 쉘을 빠져나와서 공유된 파일 내용 확인하기
exit
명령어를 사용하여 쉘을 빠져나온 다음
명령어를 실행하면 다음과 같은 결과가 출력된다.
컨테이너의 실행이 종료되어도 동일한 파일을 사용할 수 있게 된다.
💡결과
1
| This is a test file called B.txt
|
4.도커 볼륨
볼륨 생성 명령어
1
| docker volume create [볼륨_이름]
|
볼륨 목록 확인 명령어
볼륨 정보 확인 명령어