윈도우에 먼저 도커가 설치 되어 있어야 한다.
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
'시스템 > 리눅스' 카테고리의 다른 글
podman 컨테이너 저장경로 변경 (0) | 2023.02.07 |
---|---|
CentOS 8에서 시스템 언어 한글 설치하기 (0) | 2023.02.05 |
Centos 8에서 mod_jk사용하여 Apache 2.4 와 Tomcat 연동하기 (0) | 2022.07.13 |
Centos8 에 JenKins 설치 (0) | 2022.07.12 |
Centos-stream8 postgressql 컴파일 설치 (0) | 2022.07.12 |
댓글