사용자 도구

사이트 도구


wiki:3party:docker

문서의 이전 판입니다!


Docker

도커란

설치

기본 명령어

  • docker pull [image]
    • dockerhub에서 이미지를 받음
  • docker images
    • 다운 받은 도커 이미지 확인
  • docker run [option] [image]
    • 컨테이너 등록과 실행 중인지 확인
    • 기본적으로 pull 실행이 같이 됨
  • docker ps [option]
    • 컨테이너 리스트 확인
  • docker rm [id|name]
    • 컨테이터 삭제하기
  • ex1) docker rm competent_perlman
  • ex2) docker rm e56af772c419
  • docker rmi [image]
    • 이미지 삭제하기
    • ex) docker rmi hello-world
  • docker start [container]
    • 컨테이너 실행하기
    • ex) docker start hello-world
    • run은 pull + start, 즉, container를 생성하고 해당 컨테이너에 문제가 없으면 바로 start가 실행됨
    • start는 생성된 container가 stop상태일 때 실행시키는 역할
  • docker stop [container]
    • 컨테이너의 서비스 중지
    • ex) docker stop hello-world
    • start는 running 상태의 docker container를 중지시킴
  • docker exec -it [container] bash
    • 컨테이너 내부로 진입
    • ex) docker exec hello-world bash
  • 호스트 - 컨테이너 사이 파일 복사 (scp와 매우 유사)
$> sudo docker cp [host 파일경로] [container name]:[container 내부 경로]

* docker cp - 호스트 컨테이너 사이 파일 복사

MariaDB 설치

준비

  • 도커 데스크톱 설치

설치 절차

1. 최신 버전 다운로드 받기 (Ubuntu 20.04.1 LTS 기반)
C:\User\jurepi> docker pull mariadb
2. 저장소에서 이미지가 등록되어 있는지 확인
C:\User\jurepi> docker image ls
3. 등록된 이미지로 컨테이너 실행하기
C:\User\jurepi> docker run --name mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mariadb mariadb
--name : 컨테이너 이름
-d : 데몬 실행
-p : 로컬 port와 컨테이너 포트 연결
-e : 환경 변수 설정
4. 실행중인 도커 컨테이너 확인
C:\User\jurepi> docker ps
5. 도커 컨테이너로 접속
C:\User\jurepi> docker exec -it mariadb /bin/bash

설치 후 절차(Ubuntu)

1. 접속 테스트
root@jurepi:/# mysql -u root -p mariadb
2. vi 설치
root@jurepi:/# apt-get update && apt-get install vim
 
3. global conf 설정 추가
root@jurepi:/# vi /etc/mysql/my.cnf
[client]
default-character-set = utf8mb4
 
[mysql]
default-character-set = utf8mb4
 
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Linux 설치

docker-compose.yml

version: '3.8'
 
services:
    centos8:
        hostname: centos8
        container_name: centos8
        privileged: true
        user: root
        build:
            context: .
            dockerfile: Dockerfile
        stdin_open: true
        tty: true
        volumes:
            - ./data:/data
        ports:
            - '2228:22'
            - '2280:80'
            - '2281:7000'
            - '2282:7001'
            - '2283:7002'
            - '2284:7003'
            - '2285:7004'
        expose:
            - '2228'
            - '2280'
            - '2281'
            - '2282'
            - '2283'
            - '2284'
            - '2285'
        command: /sbin/init

Dockerfile

FROM centos:8 
WORKDIR /  
$> docker-compose up -d
$> yum install -y openssh-server
$> vi /etc/ssh/sshd_config <- 포트 변경
 
$> yum install -y passwd
$> /usr/sbin/useradd www   <- 사용자 생성
$> yum install -y net-tools
$> yum install -y make gcc gcc-c++ libstdc++-devel 
$> yum install -y unzip file cronie mlocate binutils

Ref

/volume1/web/dokuwiki/data/attic/wiki/3party/docker.1652835614.txt.gz · 마지막으로 수정됨: 2022/05/18 10:00 저자 dhan