yum 업데이트
# yum -y update
종속성 설치
# yum install -y yum-utils device-mapper-persistent-data lvm2
CentOS에 Docker 저장소 추가
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
docker 설치
# yum -y install docker-ce
Community Edition (CE)
Docker를 시작하고 컨테이너 기반 앱을 실험하려는 개발자 및 소규모 팀에 이상적 (무료)
두 가지 업데이트 채널을 가짐
-
Stable : 분기마다 안정적인 업데이트 제공
-
Edge : 매월 새 기능 제공
Enterprise Edition (EE)
업무용 응용 프로그램 제작, 배송 및 실행하는 엔터프라이즈 개발 및 IT팀을 위한 설계 (유료)
Docker CE와 EE 간 비교 이미지 (출처: Docker Docs, https://docs.docker.com/install/)
특정 버전의 docker 설치
사용 가능한 버전 조회
# yum list docker-ce --showduplicates | sort
<VERSION STRING> 은 가운데 열에 있으며 하이픈 앞의 영숫자 코드의 첫 번째 부분입니다.
특정 버전 설치
yum install docker-ce-[특정버전]
참조
https://phoenixnap.com/kb/how-to-install-docker-centos-7
docker 활성화 (부팅시 실행)
# systemctl enable docker
docker 실행
# systemctl start docker
docker 재시작
# service docker restart
docker 상태 확인
# systemctl status docker
이미지 검색 (docker hub, https://hub.docker.com/)
# docker search php
이미지의 태그 정보는 docker 명령행에서는 확인할 수 없고 직접 dockerhub 웹사이트의 이미지 저장소에서 확인
docker 이미지 다운로드
# docker pull [이미지 이름]
docker pull <image name>:<tag>
받은 이미지 목록 출력
# docker images
이미지 세부정보 확인
docker inspect [옵션] <컨테이너 또는 이미지의 이름, ID>
이미지 삭제
# docker rmi ubuntu:latest
docker rmi <이미지 이름>:<태그> 형식입니다. 이미지 이름 대신 이미지 ID를 사용
컨테이너 실행
# docker run -i -t --name hello ubuntu
docker run -i -t --name <container name> <image name>
*이미지가 없을 경우 이미지를 다운로드 함
옵션정보
-d | detached mode 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
–name | 컨테이너 이름 설정 |
–rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
–link | 컨테이너 연결 [컨테이너명:별칭] |
컨테이너 목록을 출력
# docker ps -a
-a 옵션을 사용하면 정지된 컨테이너까지 모두 출력하고, 옵션을 사용하지 않으면 실행되고 있는 컨테이너만 출력
컨테이너 시작
# docker start hello
docker start <컨테이너 이름>
컨테이너 재시작
# docker restart hello
docker restart <컨테이너 이름>
컨테이너에 접속
# docker attach hello
docker attach <컨테이너 이름> 형식입니다. 컨테이너 이름 대신 컨테이너 ID
컨테이너 정지
# docker stop hello
컨테이너 삭제
# docker rm hello
docker 삭제
# yum list installed docker //패키지명 확인
# yum remove docker.x86_64 //패키지 삭제
# docker-common \
# docker-selinux \
# docker-engine
# rm -rf /var/lib/docker 전체 이미지 제거
proxy 사용
# /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment=”HTTP_PROXY=http://85.254.112.20:8080/”
참조
http://pyrasis.com/Docker/Docker-HOWTO
https://gracefullight.dev/2017/07/23/Install-docker-docker-compose-to-centos/
예)
mysql 5.6 사용하기
# docker pull mysql:5.6
# docker images
# docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name test-mysql mysql:5.6
빈패스워드로 설정시 -e MYSQL_ALLOW_EMPTY_PASSWORD
옵션정보
-d | detached mode 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
–name | 컨테이너 이름 설정 |
–rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
–link | 컨테이너 연결 [컨테이너명:별칭] |
오류 1
Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
로컬에 운영중인 mysql이 있을 때 발생
해당 포트의 프로세스 조회
netstat -ntlp | grep 3306
오류 2
Error response from daemon: oci runtime errorError response from daemon: oci runtime error: container_linux.goError response from daemon: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".
=> docker 버전이 낮을경우 발생할 수 있음
'[ 서버 & DB 관련 ] > Docker' 카테고리의 다른 글
Docker 실행중인 컨테이너 자원 할당 정보 확인 (0) | 2023.01.11 |
---|---|
docker 이미지 저장 경로 변경 (window) (0) | 2022.07.05 |
docker 컨테이너에 포트 추가 하기 (0) | 2022.07.05 |
docker Proxy 설정 (0) | 2019.04.11 |