Docker-Basic

Docker 기본 사용법 정리

Docker Command

Docker Basic Command

  • 새로운 컨테이너를 실행
    docker run httpd

  • 실행중인 컨테이너를 보여줌
    docker ps

  • (중지 된 컨테이너도 보여줌)
    docker ps -a

  • ws2라는 이름의 아파치 컨테이너 실행
    docker run —name ws2 httpd

  • 아파치 서버 종료
    docker stop httpd

  • ws2 컨테이너 재실행
    docker start ws2

  • ws2 컨테이너 로그 보기
    docker logs ws2

  • 컨테이너 삭제
    docker rm ws2

  • 이미지 삭제
    docker rmi httpd

Docker Host - 호스트가 여러 컨테이너를 포함한다. 독립적인 포트를 가진다.
Docker Container - 호스트 안에 여러 컨테이너가 있다. 독립적인 포트를 가진다.

  • 앞에 80 = host , 뒤에 80 = container
    docker run -p 80:80 httpd

  • 컨테이너의 CLI를 입력할 때 == exec
    docker exec ws3 pwd
    출력 값 == /usr/local/apache2

  • 컨테이너와 지속적으로 연결하고 싶을 때
    docker exec -it ws3 /bin/sh

  • 컨테이너의 파일시스템과 호스트의 파일 시스템을 연결
    docker run -p 8888:80 -v ~/Desktop/htdocs:/usr/local/apache2/htdocs/ httpd

============================================

Dockerfile & build

스크린샷 2021-10-07 오전 10 44 40
Container를 commit하여 image를 만들 수 있다.
Dockerfile을 통해서 build하여 이미지를 만들 수 있다.

# (Dockerfile이 있는 폴더에서 . 사용하면 됨.) -t (tag이름) 
docker build -t web-server-build .; 
docker rm --force web-server; 
docker run -p 8888:8000 --name web-server web-server-build pwd;
docker commit web-server web-server-commit 

====================================================

Docker Commit 연습

docker pull ubuntu
docker run -it --name my-ubuntu ubuntu bash
docker commit my-ubuntu jwoh:ubuntu-git

====================================================

Docker file 예시

FROM ubuntu:20.04
RUN apt update && apt install -y python3 
WORKDIR /var/www/html
COPY ["index.html", "."]
EXPOSE 8000
ENTRYPOINT ["python3", "-u", "-m", "http.server"]

====================================================

Docker Push 연습

docker run -it --name my-python ubuntu
docker commit my-python tebin/python3:1.0
(hub.docker.com)에서 레파지토리를 만들어야한다.
docker push tebin/python3:1.0
(무료로는 단 1개의 repo만 사용 가능하다.)

====================================================

Docker Hub Repository 말고 github 패키지 이용하기

*참고 github 사이트가서 package로 들어가고 settings -> developer settings에서 개인 토큰 값 받아야도 됨

Docker Github.com Packages Container Registry

docker login ghcr.io -u tebin -p TOKEN
== (참고로 토큰은 깃허브에서 받는 개인 토큰 값)
export CR_PAT=TOKEN
echo $CR_PAT TOKEN
echo $CR_PAT | docker login ghcr.io -u USERNAME —password-stdin

====================================================

Reference

딥러닝의 가장 기본적인 단위는 벡터(vector), 행렬(matrix), 텐서(tensor)이다.

차원이 없는 값은 스칼라(scala)이다. 스칼라는 방향은 가지지 않고 크기만 가진다.

예를 들어 속도(velocity)는 크기와 방향을 가지지만 속력(speed)에는 크기만 있다.

1차원으로 구성된 값을 벡터(vector)라고 하며, 2차원으로 구성된 값은 행렬(Matrix)라고 부릅니다.

3차원은 우리가 살고 있는 세상인데, 텐서(Tensor)라고 부릅니다.

[1] -> Scala 

[1,1] -> Vector 

[[1,1],[1,1]] -> Tensor 

(위의 사진에 스칼라는 없습니다.)

3 = sample dimension, 2 = max length of sentence, 4 = word vector dimention


핵심 명령어 정리

 

ndim(차원)

shape(행렬)

dtype(데이터타입)

dot(곱하기)

 

sigmoid

- 시그모이드 함수는 S자형 곡선 또는 시그모이드 곡선을 갖는 수학 함수이다. 시그모이드 함수의 예시로는 첫 번째 그림에 표시된 로지스틱 함수가 있으며 다음 수식으로 정의된다.

softmax 

- 출력의 합(확률)이 1이 되게 조정

- e = 자연상수 (무리수, 약 2.7)

 

Relu

- ReLU 함수 정류 선형 유닛(영어: Rectified Linear Unit 렉티파이드 리니어 유닛에 대한 함수이다. ReLU는 입력값이 0보다 작으면 0으로 출력, 0보다 크면 입력값 그대로 출력하는 유닛인데, 그 함수는 다음과 같다.

{\displaystyle f(x)=x^{+}=\max(0,x)}

 

참고사이트 

https://wikidocs.net/52460

https://www.youtube.com/watch?v=m0qwxNA7IzI 

 

현재 맥북의 터미널을 위의 그림과 같이 세팅하였는데, 어떤 것이 폴더고 어떤 것이 파일인지 구별하기가 어렵고 뭔가 이쁘지 않은 것 같아서 터미널을 약간 커스터마이징하였다.

 

현재 자신의 쉘을 확인하려면

cat /etc/shells

bash도 있고, csh, dash, ksh, sh, tcsh, zsh 등이 있다.

 

일단 원래 사용하던 기본 쉘은 zsh쉘인데, 원래 맥은 bash 쉘을 사용하다가 카탈리나 OS 때부터 zsh쉘로 바뀌었다고 한다.

하지만 혹시나 몰라서 따로 세팅을 해야한다면, 아래와 같이 진행해보자.

# zsh 설치 
brew install zsh 

# zsh 위치 확인
which zsh

# 기본 shell 변경
chch -s /bin/zsh

# 위의 2개의 명령을 하나로
chch -s 'which zsh'

터미널을 껐다 키고 제대로 설정 되었는지 확인.

echo $SHELL

/bin/zsh

--> 현재 사용중인 쉘이 zsh라는 의미.

echo $SHELL
/bin/zsh

oh-my-zsh 설치

$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

* 개인적인 생각으로 oh-my-zsh 까지만 설치하면 파일 및 폴더 색깔 구별이 바로 되고, 사용하는 것에 전혀 불편함이 없을 것 같다. 여기까지만 하는 것을 추천한다. 하지만 나는 경험 삼아서 다른 커스터마이징도 추가로 해보겠다.

 


powerlevel9k 설치 

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

이후의 세팅은 아래의 사이트를 보고 참고하시길 권장드린다.

https://velog.io/@ruddms936/zsh-%EC%84%A4%EC%B9%98

 

zsh 설치

zsh는 bash와 같은 shell 프로그램입니다. bash에 비해 강력한 기능과 여러 가지 플러그인을 제공하고 있습니다oh my zsh는 zsh 설정을 관리하기 위한 프레임워크입니다. 현재를 기준으로 200개가 넘는

velog.io

커스터마이징 결과

 powerlevel9k or powerlevel10k 까지 진행하면 시간이 좀 오래걸린다.

특히 폰트 설치... 폰트를 따로 설치하면 깨지는 듯하다. 

 

그 외 참고사이트 

https://bit.ly/3lqsPa2

https://bit.ly/3C2bHNM

+ Recent posts