본문 바로가기
시스템/리눅스

윈도우 도커에 Centos8 설치

by cbwstar 2022. 7. 20.
728x90
반응형

윈도우에 먼저 도커가 설치 되어 있어야 한다.

cmd 창 띄워서

설치 가능한 docker 이미지 검색

 

 

목록 확인후 

docker pull roboxes/centos8    이버전 오류가 있어서 사용안함

docker pull dokken/centos-8     이버전 설치 아래꺼도 이걸로 설치 해야 잘됨

이미지를 다운받아서 설치한다.

설치된 이미지 확인

docker images

- container 생성 및 실행

docker run -it --name centos8 roboxes/centos8:latest bin/bash

 

--name 은 생성될 컨테이너 이름

그 뒤에 나오는 이름은 REPOSITORY 이름 + TAG 이름을 적어 줍니다.

bin/bash 는 컨테이너가 실행될때 bash shell로 접속하라는 구문입니다.

docker 이미지 실행확인

docker ps -a

status에 기동시간 확인

docker컨테이너에서 centos 나가는 방법

1. 종료하고 나가기

2. 종료하지 않고 나가기

 

종료하고 나갈려면

exit

종료하지 않고 나갈려면

ctrl + p 누른후 ctrl + q

 

먼저 exit로 나간경우

status 상태가 exited로 종료

- 컨테이너 다시 실행

docker start centos8

- 컨테이너 접속

docker attach contos8

docker 명령어를 적고 attach [ container id ] 또는 [container name ]

centos console로 들어 왔습니다.

여기서 ctl+p 누른후 ctrl + q 를 누르면

윈도우 창으로 빠져 나옵니다.

상태값은 up으로 살아 있습니다.

컨테이너가 살아 있기 때문에 다시 centos에 접속하려면 docker start는 할 필요 없고 그냥 docker attach 명령어로 접속하면 됩니다.

docker attach centos8

 

컨테이너에 포트 연결하기

docker run -it -p [ 외부포트1 ]:[ 내부포트1 ] -p [ 외부포트2 ]:[ 내부포트2 ] --name [ 컨테이너 이름 ] [ 이미지 이름 ] : [ 태그 ] /bin/bash

 

docker run --privileged -d -p 22:22 -p 80:80 -p 443:443 --name centos8 roboxes/centos8:latest /sbin/init

 

/**** centos8 에 접속하여 systemctl 명령을 실행하면 에러가 난다.  해결방법 ****/

[root@607577d0b861 /]# systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

 

 

해결방법

centos를 설치하고 처음 실행 시 옵션을 주어 아래와 같이 실행 시 systemctl을 정상적으로 실행 할 수 있다.

docker run --privileged -d --name centos8 roboxes/centos8:latest /sbin/init

#-------------
# 옵션 설명
#-------------
# run : 실행한다.
# --privileged : 호스트의 모든 장치를 사용한다는 의미 (기본적으로 도커의 컨테이너는 보안상의 이유로 호스트 장치에 접근할수 없게 되어 있다.)
# -d : 백그라운드로 실행..
# --name centos8 : 컨테이너 이름은 centos8로 지정
# roboxes/centos8:latest : 이미지 이름:태그이름
# /sbin/init : sbin/init를 실행

docker run --privileged -d --name centos8 roboxes/centos8:latest /sbin/init

 

이후 컨테이너 내부 쉘로 접근 시

docker exec -it <컨테이너이름> bash

docker exec -it cenots8 bash

 

/* 생성된 도커 이미지 조회 */
docker images -a

/*  도커이미지 삭제 */  -f 옵션 강제삭제
docker rmi -f [이미지아이디]

/* 도커 실행 */
docker run --privileged -d --name centos8 roboxes/centos8:latest /sbin/init

/* 도커컨테이너 접속 */
docker exec -it cenots8 bash

/* 도커중지 */
docker stop centos8

/* 도커시작 */
docker start centos8

/* 도커컨테이너 조회 */
docker ps -a

/* 도커컨테이너 삭제 */
docker rm [컨테이너id]
/* 새로 띄울 컨테이너를 commit 명령으로 이미지로 생성 만약 실행중이면 docker stop 컨테이너명 중지후 실행 */
docker commit <기존컨테이너명><신규이미지명>
docker commit centos8 newcontos8
이미지 목록을 조회하여 신규이미지가 있는지 확인
생성된 이미지로 컨테이너 생성
docker run --privileged -d --name <컨테이너명><이미지명> /sbin/init

 

/* 도커 host파일 수정 */
docker run --privileged -d -p 22:22 -p 80:80 -p 443:443  --hostname cbw --add-host www.cbw.com:192.168.2.13  --name newcentos8 newcentos8:latest /sbin/init

 

 

/*************************************************************

*** 도커 접속후 기본정보 셋팅 **************************

************************************************************/

docker exec -it centos8 bash

최신버전으로 패키지 최신화

dnf install epel-release

 

 

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading