SK Networks Family AI bootcamp 강의노트
64일차 [ docker & nginx , network ]
HyunJung_Jo
2025. 4. 17. 17:41
docker 로 이미지 다운
nginx image 다운
7 docker login
9 docker search nginx
10 docker pull nginx
nginx 컨테이너 만들어서 확인
PS C:\dev\docker> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 5ed8fcc66f4e 10 hours ago 279MB
ubuntu/apache2 latest 16698e95077b 7 days ago 270MB
pgvector/pgvector pg17 5982c00a2cdf 5 weeks ago 634MB
mysql latest 0596fa224cdf 2 months ago 1.09GB
PS C:\dev\docker> docker run --name nginx-container -d -p 80:80 nginx:latest
c0b5f05fb0ada27bdc91082998769170a979503c5de1320ceb8f97a07be5f6f0
docker stop , rm
PS C:\dev\docker> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03126be3e72d mysql "docker-entrypoint.s…" 6 days ago Up 12 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql_server-db-1
f495840a5237 pgvector/pgvector:pg17 "docker-entrypoint.s…" 2 weeks ago Up 12 minutes 0.0.0.0:5432->5432/tcp my-postgresql
PS C:\dev\docker> docker stop c0b5f05fb0ad
c0b5f05fb0ad
PS C:\dev\docker> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03126be3e72d mysql "docker-entrypoint.s…" 6 days ago Up 12 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql_server-db-1
f495840a5237 pgvector/pgvector:pg17 "docker-entrypoint.s…" 2 weeks ago Up 12 minutes 0.0.0.0:5432->5432/tcp my-postgresql
PS C:\dev\docker> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c0b5f05fb0ad nginx:latest "/docker-entrypoint.…" 4 minutes ago Exited (0) 7 seconds ago nginx-container
1f59a612508c ubuntu/apache2 "apache2-foreground" 17 hours ago Exited (255) 12 minutes ago 0.0.0.0:80->80/tcp apache-container
03126be3e72d mysql "docker-entrypoint.s…" 6 days ago Up 12 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql_server-db-1
- docker container 아이디로 stop, 확인.
- docker ps -a 로 전체 확인 가능, exited로 해당 컨테이너 stop 된 것 확인
PS C:\dev\docker> docker rm c0b5f05fb0ad
c0b5f05fb0ad
PS C:\dev\docker> docker rm 1f59a612508c
1f59a612508c
PS C:\dev\docker> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
03126be3e72d mysql "docker-entrypoint.s…" 6 days ago Up 14 minutes 33060/tcp, 0.0.0.0:3307->3306/tcp mysql_server-db-1
f495840a5237 pgvector/pgvector:pg17 "docker-entrypoint.s…" 2 weeks ago Up 14 minutes 0.0.0.0:5432->5432/tcp my-postgresql
rmi
PS C:\dev\docker> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 5ed8fcc66f4e 10 hours ago 279MB
ubuntu/apache2 latest 16698e95077b 7 days ago 270MB
pgvector/pgvector pg17 5982c00a2cdf 5 weeks ago 634MB
mysql latest 0596fa224cdf 2 months ago 1.09GB
PS C:\dev\docker> docker rmi nginx:latest
Untagged: nginx:latest
Deleted: sha256:5ed8fcc66f4ed123c1b2560ed708dc148755b6e4cbd8b943fab094f2c6bfa91e
PS C:\dev\docker> docker rmi 16698e95077b
Untagged: ubuntu/apache2:latest
Deleted: sha256:16698e95077b9f1fa47fd3e133d41b8116614c19d5ce16e14ef898406d8145fd
PS C:\dev\docker> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pgvector/pgvector pg17 5982c00a2cdf 5 weeks ago 634MB
mysql latest 0596fa224cdf 2 months ago 1.09GB
- 이미지 아이디로 삭제
- 삭제후 꼭 검증할 것
이미지 구축
# base image
FROM node:12
# maintainer info
LABEL maintainer="My email is hseon.jo59@gmail.com"
LABEL version="1.0"
LABEL description="This is a simple test server"
# copy hello.js file to root directory
COPY hello.js /
CMD ["node", "hello.js"]
- 위 도커 파일을 구축
PS C:\dev\docker> docker build -t hellojs:latest .
# 현재 위치의 도커파일로 hellojs 이미지를 만든다.
docker run
PS C:\dev\docker> docker run --name hellojs-web -d -p 8080:8080 hellojs
- detach mode(terminal detached)
- port 8080 to 8080
docker tag (hub upload)
PS C:\dev\docker> docker login
Authenticating with existing credentials...
Login Succeeded
PS C:\dev\docker> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hellojs latest e02db203d45d 8 minutes ago 1.36GB
pgvector/pgvector pg17 5982c00a2cdf 5 weeks ago 634MB
mysql latest 0596fa224cdf 2 months ago 1.09GB
PS C:\dev\docker> docker tag hellojs:latest hseonjo59/hellojs:latest
PS C:\dev\docker> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hseonjo59/hellojs latest e02db203d45d 10 minutes ago 1.36GB
hellojs latest e02db203d45d 10 minutes ago 1.36GB
pgvector/pgvector pg17 5982c00a2cdf 5 weeks ago 634MB
mysql latest 0596fa224cdf 2 months ago 1.09GB
- docker login
- 계정 정보 확인후 로컬에 있는 이미지를 계정의 허브에 올린다
Nginx 1.14 컨테이너로 정적 웹 서버 띄우기
PS C:\dev\docker> docker run -d -p 80:80 --name web -v C:\dev\docker\web:/usr/share/nginx/html nginx:1.14
Unable to find image 'nginx:1.14' locally
1.14: Pulling from library/nginx
8ca774778e85: Download complete
27833a3ba0a5: Download complete
0f23e58bd0b7: Download complete
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14
addf247e63fa431b5674d22102dfcb0138f52f35538f9ad7735826a8be11c030
PS C:\dev\docker> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
addf247e63fa nginx:1.14 "nginx -g 'daemon of…" 8 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp web
PS C:\dev\docker>
read-only로 볼륨 마운트 해서 컨테이너 생성, 테스트
PS C:\dev\docker> docker run -d -p 80:80 --name web -v C:\dev\docker\web:/usr/share/nginx/html:ro nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
32ef64864ec3: Download complete
e6557c42ebea: Download complete
6c95adab80c5: Download complete
8a628cdd7ccc: Download complete
b0c073cda91f: Download complete
ad8a0171f43e: Download complete
ec74683520b9: Download complete
Digest: sha256:5ed8fcc66f4ed123c1b2560ed708dc148755b6e4cbd8b943fab094f2c6bfa91e
Status: Downloaded newer image for nginx:latest
fd9a74c0ecbab5ce7ad6e1d71422ff774629ce5542cb3c05d6201327ad66c279
PS C:\dev\docker> docker exec -it web /bin/bash
root@fd9a74c0ecba:/# cat index.html
cat: index.html: No such file or directory
root@fd9a74c0ecba:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint.d etc lib media opt root sbin sys usr
root@fd9a74c0ecba:/# cd usr/share/nginx/html/
root@fd9a74c0ecba:/usr/share/nginx/html# echo \
> "<h1> good job </h1>" > index.html
bash: index.html: Read-only file system