혼자 고민해보기_ 개발

생활코딩 Docker 입문수업

nuri-story 2023. 9. 28. 11:56

도커 설치 후 아래 명령어 입력 시 잘 나온다면 설치가 잘 된 것입니다.

docker images

 

도커 명령어 및 설명서 입니다.

https://docs.docker.com/reference/

 

Reference documentation

This section includes the reference documentation for the Docker platform’s various APIs, CLIs, and file formats.

docs.docker.com

 

httpd image 설치하기

docker pull httpd

 

docker image로 설치내역 확인하기

hyerim@hyerimui-MacBookAir ~ % docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    ce6083df2933   7 days ago    195MB
mysql        latest    de7c37d1d5ac   8 weeks ago   599MB

 

실행하기

docker run httpd

 

생성한 컨테이너 확인하기

docker ps

 

새로운 이름의 컨테이너 만들기

docker run --name ws2 httpd

 

실행 중인 컨테이너 끄기 (stop 뒤에 ws2 추가)

docker stop ws2

 

전체 확인하기

docker ps -a

 

중지시켰던 컨테이너 키기

docker start ws2

 

로그 지속적으로 확인하기

docker logs -f ws2

 

컨테이너 종료하고 삭제하기 (컨테이너는 무조건 종료 먼저 하고 삭제가 가능하다)

docker rm --force ws2

 

이미지 삭제하기

docker rmi httpd

 

도커로 웹서버 연결하는 과정

 

컨테이너를 publish로 연결시키기

 

도커 ws3이름으로 8081:80포트 연결하기

docker run --name ws3 -p 8081:80 httpd

웹 브라우저에서 아래로 접속하면 It works가 등장!

http://localhost:8080/index.html

 

도커에 들어가서 그 컨테이너에 들어가서 'open in external terminal' 선택 

pwd, ls -la로 확인해보기

Last login: Thu Sep 28 11:37:59 on ttys004
docker exec -it eb197d305cadb53f5216df4b6c03594f78d06414df6344b09d89333f27739f89 /bin/sh
hyerim@hyerimui-MacBookAir ~ % docker exec -it eb197d305cadb53f5216df4b6c03594f78d06414df6344b09d89333f27739f89 /bin/sh
Error response from daemon: Container eb197d305cadb53f5216df4b6c03594f78d06414df6344b09d89333f27739f89 is not running
hyerim@hyerimui-MacBookAir ~ % pwd 
/Users/hyerim
hyerim@hyerimui-MacBookAir ~ % ls -la
total 248
drwxr-xr-x   45 hyerim  staff   1440  8 26 08:41 ! history
drwxr-x---+  54 hyerim  staff   1728  9 28 11:38 .
drwxr-xr-x    5 root    admin    160  9 27 23:51 ..
drwxr-xr-x@   8 hyerim  staff    256  6 27 12:21 .3T
-r--------    1 hyerim  staff      8  5 11 23:36 .CFUserTextEncoding
-rw-r--r--@   1 hyerim  staff  14340  9 28 11:09 .DS_Store
drwx------+ 244 hyerim  staff   7808  9 27 10:28 .Trash
drwxr-xr-x@   3 hyerim  staff     96  5 18 22:57 .aws
-rw-------@   1 hyerim  staff    294  7  8 12:33 .bash_history
drwxr-xr-x@   4 hyerim  staff    128  8 26 09:15 .cache
drwx------@   4 hyerim  staff    128  8  1 21:50 .config
drwxr-xr-x@  11 hyerim  staff    352  9 28 11:18 .docker
-rw-r--r--@   1 hyerim  staff    409  7 25 17:36 .gitconfig
-rw-r--r--@   1 hyerim  staff     82  5 24 11:02 .gitflow_export
-rw-r--r--@   1 hyerim  staff     13  5  4 01:06 .gitignore_global
-rw-r--r--@   1 hyerim  staff   1347  7 25 17:35 .gitmessage.txt
-rw-r--r--@   1 hyerim  staff     27  5  4 01:06 .hgignore_global
drwxr-xr-x    3 hyerim  staff     96  5 11 23:41 .idlerc
-rw-------@   1 hyerim  staff     20  9 20 00:57 .lesshst
drwx------@   3 hyerim  staff     96  6 13 09:14 .mongodb
-rw-------    1 hyerim  staff    666  8  8 20:41 .mysql_history
drwxr-xr-x@   3 hyerim  staff     96  8  2 13:22 .ngrok
-rw-------@   1 hyerim  staff     68  6 12 11:14 .node_repl_history
drwxr-xr-x@   6 hyerim  staff    192  8 29 13:29 .npm
drwxr-xr-x@  13 hyerim  staff    416  9 13 23:10 .pm2
drwxr-xr-x@  17 hyerim  staff    544  9 18 00:01 .ssh
-rw-r--r--@   1 hyerim  staff      0  5 24 09:34 .stCommitMsg
drwxr-xr-x@   3 hyerim  staff     96  6 12 23:56 .swt
drwxr-xr-x@   4 hyerim  staff    128  6 19 21:46 .th-client
-rw-------@   1 hyerim  staff  21991  9 23 21:22 .viminfo
drwxr-xr-x@   4 hyerim  staff    128  5 25 21:39 .vscode
drwxr-xr-x@   2 hyerim  staff     64  5 25 21:39 .vscode-cli
drwxr-xr-x@   5 hyerim  staff    160  5 11 22:32 .vscode-insiders
-rw-r--r--@   1 hyerim  staff    116  9 20 18:51 .yarnrc
-rw-r--r--    1 hyerim  staff    164  5  7 18:44 .zprofile
-rw-------    1 hyerim  staff  29452  9 27 21:07 .zsh_history
drwx------   46 hyerim  staff   1472  9 28 11:38 .zsh_sessions
-rw-------@   1 hyerim  staff     85  7  8 12:41 .zshrc.save
drwx------@   5 hyerim  staff    160  7  7 11:34 Applications
drwx------+  10 hyerim  staff    320  9 28 11:37 Desktop
drwx------+  17 hyerim  staff    544  7 24 14:13 Documents
drwx------@ 183 hyerim  staff   5856  9 27 10:28 Downloads
drwx------@ 102 hyerim  staff   3264  9 28 00:05 Library
drwx------   15 hyerim  staff    480  9 15 21:29 Movies
drwx------+   7 hyerim  staff    224  6  8 17:04 Music
drwx------+   5 hyerim  staff    160 10 29  2022 Pictures
drwxr-xr-x+   5 hyerim  staff    160  5 27 00:03 Public
drwxr-xr-x   13 hyerim  staff    416  9 20 10:22 chatgpt
drwxr-xr-x   13 hyerim  staff    416  9 11 11:25 crawling
drwxr-xr-x   22 hyerim  staff    704  9 11 18:57 crawling_infleatn
drwxr-xr-x@   8 hyerim  staff    256  8 26 12:12 puppeteer-demo
drwxrwxr-x@  33 hyerim  staff   1056  8 25 03:32 puppeteer-main
drwxr-xr-x    6 hyerim  staff    192  9  8 16:06 s3
drwxr-xr-x    3 hyerim  staff     96  9 19 15:45 streaming-platform
hyerim@hyerimui-MacBookAir ~ %

 

위와 같이 ws3라는 컨테이너에서 pwd 명령어를 쓰는 것과 같이 터미널에서 바로 사용할 수 있음

docker exec ws3 pwd

쉘이란 프로그램을 지속적으로 연결하기

docker exec -it ws3 /bin/sh

지금부터 내리는 명령은 ws3 컨테이너 내에서 진행되는 명령이 되버립니다.

 

 

httpd 메뉴얼에 가보면 /usr/local/apache2/htdocs/ 경로에 사용자가 요청한 웹페이지를 보관하도록 약속되어있다고 써져있습니다.

위 정보를 바탕으로 아래와 같이 들어가고

docker exec -it ws3 /bin/sh

cd라는 걸로 경로 진입!

cd /usr/local/apache2/htdocs/

아래로 확인

ls -al

최신 상태로 갱신하기

apt update

nano 다운로드 받기

apt install nano

 

nano로 진입해서 html 수정하기

nano index.html

 

 

 

위와 같이 수정할 수 있지만 컨테이너가 삭제된다면 어렵게 작업한내용이 물거품이 됩니다.

컨테이너를 사용하는 이유는 사용할때 쓰고 지우고 싶을때 지우고 싶어서 이니까

호스트가 없어질때 파일시스템에 반영될 수 있게 하면 안정적이니까 좋지 않을까요? 버전관리도 쉽구요

실행환경은 컨테이너에게 맡기고 파일 수정은 호스트에게 맡기는 방법으로 진행해보겠습니다.

vscode를 키고 아래와 같이 index.html을 작성

<html>
  <body>
    Hello, Docker!!!!
  </body>
</html>

 

아래와 같이 작성하하고 실행한 뒤

docker run -p 8888:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/  httpd

 

웹 브라우저로 이동하면~ 바로바로 수정이 가능하다

http://localhost:8888/index.html

 

'혼자 고민해보기_ 개발' 카테고리의 다른 글

[항해커톤] 후기 제출  (0) 2023.10.07
.env 정리  (0) 2023.09.30
EC2 인스턴스 CPU 과부화 이슈  (0) 2023.09.26
GitAction CI/CD 배포  (0) 2023.09.26
multer-s3 이미지 등록하기  (0) 2023.09.26