2> 도커 파일 만들기 1
1
cat << EOF > Dockerfile
FROM nginx:latest
RUN echo '
test nginx web page
' >> index.html
RUN cp /index.html /usr/share/nginx/html
EOF
FROM : Base Image
RUN : shell command를 docker image에 실행
WORKDIR : 작업 디렉토리
EXPOSE : 호스트와 연결할 포트 번호를 지정
CMD : application을 실행하기 위한 명령어
2
# 빌드
# nginx 는 컨테이너 이름 , image는 이미지 이름
# 이미지를 만들고, 컨테이너를 실행 시킨다.
docker build -t test-image .
Trying to pull registry.access.redhat.com/nginx:latest...
Error: creating build container: initializing source docker://registry.access.redhat.com/nginx:latest: reading manifest latest in registry.access.redhat.com/nginx: unauthorized: access to the requested resource is not authorized
[root@ncp-com1-12-24-1 environment]#
4
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test-image latest 3eaf3b495f1d 11 seconds ago 192MB
5
docker run -p 8080:80 --name test-nginx test-image
docker run -p 8080:80 --name 컨테이너_이름 이미지_이름
6
# 별도 터미널2
docker ps
[root@demo1 environment]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3192fb93622 test-image " " About About 0.0.0.0:8080->80/tcp, :::8080->80/tcp test-nginx
docker logs -f test-nginx
[root@demo1 environment]# docker logs -f [CONTAINER]
Usage: docker logs [OPTIONS] CONTAINER
7
# 도커에 로그인 하는 법 = -it 옵션
docker exec -it test-nginx /bin/bash
[root@ip-172-31-40-122 ~]# docker exec -it test-nginx /bin/bash
root@bfcccd5aee49:/#
root@bfcccd5aee49:/#
8
확인 ?
[root@eksctl-host ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c39ffd44d510 test-image "/docker-entrypoint.…" 12 minutes ago Up 12 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp test-nginx
9
# 도커에 로그인 하는 법 = -it 옵션
[root@eksctl-host ~]# docker exec -it c39ffd44d510 /bin/bash
root@c39ffd44d510:/# ls
bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home index.html lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
10
root@c39ffd44d510:/# more index.html
test nginx web page