docker 11

리눅스에서 cgroup 사용 예제

목표: openmpi를 cgroup을 이용해서 cpuset을 해 준 뒤에 mpirun -np / --cpu-set / bind-to core 옵션 줘서 실행해보기 1. cgroup 관리 툴을 설치 (안깔아도 되는데 까는게 편리) sudo apt-get install cgroup-tools 혹은 cgroup-bin 2. cgroup생성 sudo cgcreate -g cpuset:mpi_test sudo cgset -r cpuset.cpus="0,3" mpi_test sudo cgset -r cpuset.mem="0" mpi_test //안해주면 에러남 그리고 /sys/fs/cgroup/cpuset/mpi_test폴더 안에서 해야 적용되드라 cat /sys/fs/cgroup/cpuset/mpi_test/cp..

Study/linux 2019.11.08

도커에서 CentOS 컨테이너를 실행할 수 있는이유

현재 우분투를 사용하고있다. 그런데 우분투 위에서 다른 OS의 컨테이너를 실행할 수 있는 이유는 무엇일까? 도커는 호스트와 커널을 공유하기 때문이다. 엄격하게 리눅스는 '커널'만을 의미하고, Ubuntu나 Fedora, CentOS등은 리눅스의 서로 배포판일 뿐이다. 다른 말로 하면 Ubuntu, Fedora, centOS의 리눅스 커널은 동일하고, 그 위 파일시스템이나 프로그램 생김새가 다르다는 뜻이다. 즉, 리눅스 커널이라는 뿌리가 같으니 도커에서 다른 리눅스계통의 OS를 돌릴 수 있었던 것! 참고: http://korean-daeddo.blogspot.com/2016/11/blog-post.html?m=1 리눅스 배포판 종류 및 선택 리눅스 배포판의 종류와 선택 기준(또는 추천)을 알려주는 글입니다..

Study/linux 2019.10.29

docker에서 컨테이너 gui 실행하기

우분투의 그래픽은 시스템이 아니다. 프로그램이다. 그래서 리눅스 서버버전을 실행하면 gui가 없던 것!! 우분투는 `Xorg`라는 그래픽 프로그램을 이용한다. 즉, 얘가 있어야 그래픽을 띄워줄 수 있다는 얘기. 그럼 도커에서 그래픽을 띄워주려면? 호스트의 자원을 공유하면 된다. 호스트의 Xorg를 컨테이너가 이용하면 된다는 말. 실행옵션을 추가해주면 컨테이너에서도 그래픽을 볼 수 있다. 도커를 gui로 실행하는 방법은 두 가지가 있다. 1. VNC를 이용하거나 2. 단순히 XServer를 공유하거나. VNC를 이용하는 방법은 여기와 여기를 참고하자. Xauthority 어쩌구저쩌구한다. ...더보기 Xauthority becomes an issue with newer systems. I can eithe..

Study/linux 2019.10.18

HPL recipe for target 'build' failed *** [build] Error 2

도커에서 겨우겨우 실행시켰던 HPL... 호스트에서 돌려보려고 하니 또 문제가 생겼다. HPL recipe for target 'build' failed *** [build] Error 2 에러가 난다. 해결해보자. 1. openmpi 확인 2. 각종 라이브러리 확인 3. hpl make파일 확인 1. openmpi가 잘 설치되었나 확인해보기 - openmpi 다운받기 : https://www.open-mpi.org/software/ompi/v4.0/ - 다운받은 압축파일을 풀고, 해당 폴더(top folder라고 하겠다)에서 `$ ./configure --prefix="/usr/local/openmpi"` - top folder에서 `$ make install` - 환경변수 설정 (아까 configur..

Study/linux 2019.10.17

도커 컨테이너에서 가장 마지막으로 수정한 파일을 호스트로 가져오기

후 드디어 명령어 만들었다. docker exec [container] ls -tr | tail -1 | xargs -I {} docker cp [container]:{} [host_dir] 예시 : hpcg 컨테이너에서 가장 최근에 수정된 파일을 test라는 이름으로 복사해오기 docker exec hpcg ls -tr | tail -1 | xargs -I {} docker cp hpcg:/AddedFiles/hpcg-3.1/bin/{} ./test 지금은 workdir을 정해줘서 바로 특정 디렉토리 내에서만 검색하는데, 만약 컨테이너 전체를 검색하고 싶다면 `ls`대신 `find`를 이용하면 된다.

Study/linux 2019.10.13

[Remote API] 외부 컴퓨터에서도 도커를 이용하기

도커가 깔려 있지 않은 컴퓨터에서도 도커를 이용할 수 있다. 어떻게? 외부에서 접속해서! RemoteAPI를 이용하면 원격으로 도커 데몬에 명령을 내릴 수 있다. pull이나 attach같은 몇몇 복잡한 명령어들은 안되지만, 대부분은 가능하다. 외부에서 apach server를 열어 테스트해보자. 도커 데몬 TCP 소켓 열기 같은 컴퓨터 내에서 프로세스끼리 통신할땐 UNIX소켓, 다른 컴퓨터끼리 네트워크로 통신할 땐 TCP소켓을 이용한다. 나는 다른 컴퓨터에서 원격으로 이용할 것이니 TCP소켓을 열어준다. 1. TCP소켓 Listen하기 # listen using the default unix socket, and on 2 specific IP addresses on this host. $ service..

Study/linux 2019.10.06

[Error] 도커에서 mpirun실행시 errno=1 에러

mpirun을 했는데 이런 에러가 뜬다. > Read -1, expected 13212, errno = 1 원인은 CMA였다. 도커에서 쓰는 네임스페이스가 host와 달라서 그렇다나 뭐라나 해결방법: 도커 안에서 다음 명령을 실행한다. $ export OMPI_MCA_btl_vader_single_copy_mechanism=none 참고 https://github.com/open-mpi/ompi/issues/4948 Vader in a Docker Container · Issue #4948 · open-mpi/ompi Background information What version of Open MPI are you using? (e.g., v1.10.3, v2.1.0, git branch name an..

Study/linux 2019.10.04

도커에서 HPL 이용하기

도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테# 도커에서 HPL 컨테이너 사용하기 도커에서 HPL (High-Performance Linpack) 컨테이너를 사용하는 방법을 알아보자. 아직 도커에 HPL이나 linpack의 공식 이미지가 없다. (2019.09.24. 기준) 그래서 그냥 내가 만들어 쓰기로 했다. 목차: 0. HPL과 준비물 컨테이너에서 직접 실행시켜보기 Dockerfile 작성하기 컨테이너 실행 확인하기 HPL이 뭔가? 우선 HPL이 무엇인지 감부터 잡아보자. HPL은 "High-Performance Linpack"의 약자인데, 여기서 Linpack은 벤치마크 프로그램 이름이다. 즉, HPL은 "High-Performace Com..

Study/linux 2019.09.30

도커로 아파치 웹 서버 구축하기

도커에서 아파치 컨테이너로 웹 서버를 실행해보자. dockerfile을 작성하는 방법과, 작성하지 않는 방법이 있다. 이 포스팅에서는 작성하지 않는 방법으로 실행해본다. 이미지를 다운받아서 실행하면 된다. 간-단! 목차: 1. 아파치 이미지 다운받기 2. 컨테이너 실행하기 3. 서버 실행 확인하기 4. 기타 팁 1. 아파치 이미지 다운받기 1 $ docker pull httpd:latest cs pull명령어로 이미지를 다운받는다. 공식 아파치가 httpd고, 혹시 다른 아파치를 받고싶다면 `$ docker search apache`로 검색해보자. 2.아파치 컨테이너 실행하기 · 기본적인 옵션만 주고 아파치를 실행하는 방법: 1 $ docker run -d --name apache -p 8080:80 h..

Study/linux 2019.09.23