본문 바로가기

분류 전체보기

(134)
도커에서 CentOS 컨테이너를 실행할 수 있는이유 현재 우분투를 사용하고있다. 그런데 우분투 위에서 다른 OS의 컨테이너를 실행할 수 있는 이유는 무엇일까? 도커는 호스트와 커널을 공유하기 때문이다. 엄격하게 리눅스는 '커널'만을 의미하고, Ubuntu나 Fedora, CentOS등은 리눅스의 서로 배포판일 뿐이다. 다른 말로 하면 Ubuntu, Fedora, centOS의 리눅스 커널은 동일하고, 그 위 파일시스템이나 프로그램 생김새가 다르다는 뜻이다. 즉, 리눅스 커널이라는 뿌리가 같으니 도커에서 다른 리눅스계통의 OS를 돌릴 수 있었던 것! 참고: http://korean-daeddo.blogspot.com/2016/11/blog-post.html?m=1 리눅스 배포판 종류 및 선택 리눅스 배포판의 종류와 선택 기준(또는 추천)을 알려주는 글입니다..
docker에서 컨테이너 gui 실행하기 우분투의 그래픽은 시스템이 아니다. 프로그램이다. 그래서 리눅스 서버버전을 실행하면 gui가 없던 것!! 우분투는 `Xorg`라는 그래픽 프로그램을 이용한다. 즉, 얘가 있어야 그래픽을 띄워줄 수 있다는 얘기. 그럼 도커에서 그래픽을 띄워주려면? 호스트의 자원을 공유하면 된다. 호스트의 Xorg를 컨테이너가 이용하면 된다는 말. 실행옵션을 추가해주면 컨테이너에서도 그래픽을 볼 수 있다. 도커를 gui로 실행하는 방법은 두 가지가 있다. 1. VNC를 이용하거나 2. 단순히 XServer를 공유하거나. VNC를 이용하는 방법은 여기와 여기를 참고하자. Xauthority 어쩌구저쩌구한다. ...더보기 Xauthority becomes an issue with newer systems. I can eithe..
C++ filesystem:: C++에서 파일디렉토리/파일 시스템 읽어오기 C++17에서 추가된 라이브러리를 이용하면 파일 시스템을 읽어올 수 있다. 원래 boost에 있던건데 정식으로 추가됐다. 사용법: #include namespace std::experimental::filesystem; g++ main.cpp -lstdc++fs gcc 8버전 이상부터는 experimental을 빼고 그냥 #include 하면 된다. 폴더 내 모든 폴더명/ 파일명을 긁어오는 예제 for(auto& p: fs::recursive_directory_iterator(path)) { cout
헤더파일에 using namespace를 하지 말아야 하는 이유 using 지시문 Using 지시문을 사용 하면 네임 스페이스 이름을 명시적 한정자로 사용 하지 않고 네임 스페이스 의 모든 이름을 사용할 수 있습니다. 네임 스페이스에서 여러 다른 식별자를 사용 하는 경우 구현 파일 (예: * .cpp)에서 using 지시문을 사용 합니다. 하나 또는 두 개의 식별자만 사용 하는 경우에는 using 선언을 사용 하 여 네임 스페이스의 모든 식별자가 아닌 해당 식별자를 범위로 가져옵니다. 지역 변수의 이름이 네임스페이스 변수와 동일한 경우 네임스페이스 변수가 숨겨집니다. 전역 변수와 동일한 이름을 가진 네임스페이스 변수를 사용하면 오류가 발생합니다. 참고 using 지시문은 .cpp 파일 맨 위나(파일 범위) 클래스 또는 함수 정의 내에 배치할 수 있습니다. 일반적으로 ..
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..
도커 컨테이너에서 가장 마지막으로 수정한 파일을 호스트로 가져오기 후 드디어 명령어 만들었다. 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`를 이용하면 된다.
디렉토리에서 가장 최근 파일의 이름 바꾸기 디렉토리에서 가장 최근 파일 이름 바꾸는 법을 알아보자. mv명령어를 이용하므로, 이름말고 위치를 바꿀 때도 동일하게 사용하면 된다. ls -tr | tail -1 | xargs -I{} mv {} new_name 해석: ls -tr : 시간(-t)을 내림차순(-r)으로 정렬해서 보여준다(ls) | tail -1 : 앞 명령어로 나온 결과중에 ( | ) 맨 마지막 한 가지만 고른다 (tail -1) | xargs -I {} mv {} new_name : 앞 명령어 결과를 이용하여 (|) 다음 명령어의 인자로 전달한다 (xargs) 전달하는 위치는 다음 변수가 있는 곳으로 한다 (-I, {}... {}는 변수 이름이고 변경 가능) 전달받은 인자의 이름을 new_name으로 바꾼다 ( mv {} new_na..
jmeter cli로 실행 시 각종 파라미터 넘기기(ip, thread, port 등) jmeter를 cli로 사용하는 법을 알아보자. cli로 실행할때마다 ip주소를 유동적으로 넘겨주고 싶다면 아래 포스팅 참고 https://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/ Jmeter – command line script execution with arguments Its a common practice to create Performance script in GUI mode and run the test in CUI (command user interface) mode. Some time we need to pass some arguments to script as input. ..