linux 서버에서 root로 ssh를 이용하는경우 무작위 대입공격 시도에 당할 수 있어 보안에 매우 취약하다고 볼 수 있습니다. 

 root계정으로 접속이 불가능하도록 설정을 해보도록 하겠습니다. 

 

1. useradd [새계정]

   - passwd로 계정에 패스워드 입력 

2. vim /etc/ssh/sshd_config

   - PermitRootLogin no로 설정 

3. service sshd restart로 ssh 데몬을 재시작 

4. 새 계정 ssh 접속 

 

 

 

 

 

이미지를 만들기 위하여 Dockerfile를 사용을 합니다. 

Dockerfile내의 주요 명령어를 정리해 보았습니다.

docs.docker.com/engine/reference/builder/

 

Dockerfile reference

 

docs.docker.com

 

Dockerfile 빌드 

build

Dockerfile로부터 이미지 생성
docker build .
docker build -f /path/to/a/Dockerfile .

 

Dockerfile내 명령어

FROM

베이스이미지를 불러옵니다.
FROM [--platform=<platform>] <image> [AS <name>]
ROM [--platform=<platform>] <image>[:<tag>] [AS <name>]
FROM [--platform=<platform>] <image>[@<digest>] [AS <name>]

RUN

RUN <command>
RUN /bin/bash -c 'source $HOME/.bashrc; \
echo $HOME'
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'
RUN ["/bin/bash", "-c", "echo hello"]

CMD

CMD ["executable","param1","param2"]

COPY

COPY [--chown=<user>:<group>] <src>... <dest>
COPY [--chown=<user>:<group>] ["<src>",... "<dest>"]

ADD

ADD [--chown=<user>:<group>] <src>... <dest>
ADD [--chown=<user>:<group>] ["<src>",... "<dest>"]

ENTRYPOINT

컨테이너가 시작되었을때 실행
ENTRYPOINT ["executable", "param1", "param2"]
ENTRYPOINT command param1 param2

VOLUME

마운트 포인트를 생성
FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol

WORKDIR

도커파일내의 RUN, CMD, ENTRYPOINT, COPY and ADD가 실행되는 위치를 지정
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

EXPOSE

컨테이너가 listens할 port를 지정
EXPOSE <port> [<port>/<protocol>...]
EXPOSE 80/udp

 

 

1. 도커란 

도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.

ko.wikipedia.org/wiki/%EB%8F%84%EC%BB%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)

 

기본 명령어 

모든 자세한 내용은 하기 document문서에서 확인하면 상세정보를 확인할 수 있습니다.

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

 

로그인

docker login [OPTIONS] [SERVER]

 

 

이미지 관련

이미지 찾기

Docker 허브에서 이미지를 검색
docker search [OPTIONS] TERM
docker search busybox

이미지 다운로드

레파지토리에서 이미지를 pull
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull debian
docker pull debian:jessie

이미지 보기

이미지 리스트를 보여준다.
docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images java
docker images java:8

이미지 실행

이미지에서 새로운 컨테이너를 실행한다.
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run --name test -it debian

이미지 만들기

Dockerfile로 부터 이미지를 생성
docker build [OPTIONS] PATH | URL | -
docker build http://server/context.tar.gz
docker build -t app .

이미지를 삭제

docker rmi [OPTIONS] IMAGE [IMAGE...]
docker rmi fd484f19954f
docker rmi test2:latest
docker rmi -f fd484f19954f
docker rmi -f $(docker images -a -q)

이미지 히스토리

docker history [OPTIONS] IMAGE
docker history docker

레파지토리에 이미지 올리기

docker push [OPTIONS] NAME[:TAG]
docker push registry-host:5000/myadmin/rhel-httpd

 

컨테이너 관련

컨테이너 정지

docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker stop my_container

컨테이너 시작

docker start [OPTIONS] CONTAINER [CONTAINER...]
docker start my_container

컨테이너 종료

docker kill [OPTIONS] CONTAINER [CONTAINER...]
docker kill my_container

컨테이너 확인

컨테이너 리스트를 보여준다
docker ps [OPTIONS]
docker ps -a

컨테이너 삭제

docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rm /redis
docker rm --force redis
docker rm $(docker ps -a -q)

컨테이너 명령

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker exec -it ubuntu_bash bash
docker exec -it ubuntu_bash pwd

볼륨 생성

docker volume create [OPTIONS] [VOLUME]
$ docker volume create hello
hello
$ docker run -d -v hello:/world busybox ls /world

이미지 정보 보기

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
docker inspect --format='{{.Config.Image}}' $INSTANCE_ID

 

'DevOps' 카테고리의 다른 글

[Docker] HTTPS Let 's Encrypt 인증서 발급받기  (0) 2020.12.14
[Docker] 네트워크, 컨테이너간 통신  (0) 2020.12.12
[Docker] Dockerfile command  (0) 2020.11.20
[nginx] nginx 프록시 설정  (0) 2020.11.17

+ Recent posts