Web

[1028 Docker] 도커 mariadb, vi 외

ERROR 1.

문제 $ psql postgres role postgres does not exist
출처 www.inflearn.com/questions/5647
해결 윈도우 에선 $ psql --username NAME --dbname DBNAME

(su - postgres psql)

ERROR 2.

문제 1)org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

2) $docker ps
Error response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file specified.
출처 blog.joonas.io/173
해결 C:\Program Files\Docker\Docker>"DockerCli.exe" -SwitchDaemon

 

 


도커

리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 
https://ko.wikipedia.org/wiki/%EB%8F%84%EC%BB%A4_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
설치 다운로드 도커 : https://hub.docker.com/editions/community/docker-ce-desktop-windows
1. 파일명 : Docker Desktop Installer.exe   >> 설치 이후에는 컴퓨터 실행시마다 실행됩니다. 
2. WSL 2 installation is incomplete.
cmd 관리자 권한실행
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
다운로드드 커널파일 :  x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지https://aka.ms/wsl2kernel
파일명 : wsl_update_x64.msi
**WSL 2 는 윈도우 10부터 ,
**WSL(Windows Subsystem for Linux) : Windows에서 Linux CLI 실행을 위한 기능
https://docs.microsoft.com/ko-kr/windows/wsl/faq
3. 설치 확인 CMD : 
$docker --version
Docker version 20.10.8, build 3967b7d
참고 : https://thinkingtool.tistory.com/entry/window-10-%ED%99%88-%EB%8F%84%EC%BB%A4-%EC%84%A4%EC%B9%98-%EC%97%90%EB%9F%AC-WSL-2-installation-is-incomplete
도커 기본명령어 docker ps  // 현재 일하는작업
docker ps -a // 모든작업. 

컨테이너 목록보기
docker container ls -a

컨테이너 접속 
docker exec -it 컨테이너명 bash

apt-get(Advanced Packaging Tool: 리눅스 데비안계열 패키지 관리명령어)
$ apt-get update   >> 업데이트(최신화)

도커로 파일이동
docker cp C:/create.sql mariadb:/create.spl

https://docs.docker.com/engine/reference/commandline/cli/


docker restart mariadbC
docker stop mariadbC
docker start mariadbC
docker kill mariadbC


$ docker
Usage: docker [OPTIONS] COMMAND [ARG...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:
      --config string      Location of client config files (default "/root/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host value         Daemon socket(s) to connect to (default [])
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/root/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Commands:
    attach    Attach to a running container
    # […]
vi bash: vi: command not found  >> vi 미설치
1. 도커실행
(root@1e8aa1f0a68b:  << 콘솔 명이 이렇게 시작안되면 docker exec -it 컨테이너명 bash  > 도커실행 )

2.
apt-get update                        > 설치파일 최신화
apt-get install vim
vi 파일명  << 실행
mariadb 1. 설치
$docker pull mariadb  > 최신 마리아디비 가져오기
$docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mariadbC mariadb
docker 컨테이너 실행  -d(백그라우드) -p(포트 3306 접속, 3306 포워딩), -e (환경변수 설정)
--name : 도커 컨테이너 이름, mariadb  다운받은 이미지 이름. 
(docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234  -v /Db/Test/Create/mariadb:/var/lib/mysql  
--name mariadb mariadb)
cf) docker run --name mariadb -e MARIADB_ROOT_PASSWORD=1234 -p 3306:3306 -d mariadbC/server:latest

2. 설치 확인 
$docker container ls -a 


3. 실행
docker exec -it mariadbC bash
mysql -u root -p

4. 데이터 베이스생성
$create database test;

$flush privileges;
$show databases;
$exit

create user 사용자ID identified by 비밀번호;
grant all privileges on 디비이름.* to '계정'@'localhost' identified by '비번' with grant option;


5. DB 대소문자 무시 설정 (bash: vi: command not found 출력시 상기 vi설치 참고)
$vi /etc/mysql/my.cnf
insert : i
최하단 추가 : lower_case_table_names  = 1
저장 : :wq!
$exit
$docker restart mariadbC




6. 덤프 실행
docker exec -i mariadb mysql -uroot -p1234 astron_erd < create.sql

[1028 mysql,mariadb]


참고 링크  : https://kdinner.tistory.com/27
재시작 설정 docker update --restart {no,on-failure,unless-stopped,always} container_name
참고링크 : https://www.reddit.com/r/docker/comments/ggdbs5/auto_start_containers_windows/

하기는 정리 전. 

terms.naver.com/entry.naver?docId=3586075&cid=59277&categoryId=59282

 

<<--가장 쉽게 배우는 도커youtu.be/hWPv9LMlme8   내용 시작. -->>

Front-End, Back-End, Database

개발용 컴퓨터, 서버용 컴퓨터.  동일하게 설치됨. 

Q 집에서 여러 서버 버전이 여러개? 

>> 가상환경. 으로 나눔.   ... 컴퓨터자원이 환경마다 제한, 서버에 중복기능 많아짐. 

>> 도커 : 컨테이너.   업무공간으로 활용하는 여러개 컨테이너를 만듬. 낭비 줌.  

Q 서버, 로컬 개발환경을 각각설치?

>> 도커 : 동일하게 설치 가능. 

 

설치

1. 

www.docker.com/get-started   여기서 Installer.exe 설치. 

docs.microsoft.com/.. wsl> 도커 설치 중.._update_x64.msi 설치

설치후 CMD

>docker --version
Docker version 20.10.5, build 55c4c88

 

2.

윈도우 사용자 내부에 폴더 생성. 

VS CODE  >> Terminal > new Terminal > 

git clone https://gitlab.com/yalco/practice-docker.git 

이미지 >> 무한생산 가능한 컨테이너 조립 키트. 

CLI >> 명령 줄 인터프리터(command-line interpreter)

<<--가장 쉽게 배우는 도커youtu.be/hWPv9LMlme8   내용은 여기까지.. 노드안써서 -->>

 

 

 

postgres  설치 실행 

더보기

docker run -it node   // 

docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=1111 -d postgres

docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=username-e POSTGRES_DB=springdata --name postgres_boot -d postgres

 

>> 

docker run -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=day -e POSTGRES_DB=diaryDB --name postgres_boot -d postgres

docker run -p 5432:5432 -e POSTGRES_PASSWORD=1234 -e POSTGRES_USER=day -e POSTGRES_DB=diarydata --name postgres_diary -d postgres

 

>5432/tcp   postgres_boot


C:\Users\miseong>docker start postgres_diary
postgres_diary

 

C:\Users\miseong>docker exec -i -t postgres_diary bash
root@b1de21ce08f0:/# su - postgres
postgres@b1de21ce08f0:~$ psql --username day --dbname diarydata

 

docker ps  // 현재 일하는작업

docker ps -a // 모든작업. 

docker stop mariadb    정지 

 

docker container ps -a

docker container rm f00324f6f9c7

docker images  이름

docker image rm 아이디

 

docker exec -i -t mariadb bash    >>  bash 실행 

 

 

 

 

mysql -umariadb -p

 

도커 재기동

더보기

postgres_diaryC:\Users\miseong>docker ps -a
CONTAINER ID   IMAGE      COMMAND                  CREATED      STATUS                        PORTS                    NAMES
b1de21ce08f0   postgres   "docker-entrypoint.s…"   2 days ago   Exited (255) 36 minutes ago   0.0.0.0:5432->5432/tcp   postgres_diary

C:\Users\miseong>docker start postgres_diary
postgres_diary

C:\Users\miseong>docker exec -i -t postgres_diary  bash
root@b1de21ce08f0:/# su - postgres
postgres@b1de21ce08f0:~$ psql --username day  --dbname diarydata
psql (13.2 (Debian 13.2-1.pgdg100+1))
Type "help" for help.

diarydata-# \dt
        List of relations
 Schema |  Name   | Type  | Owner
--------+---------+-------+-------
 public | account | table | day
 public | study   | table | day
(2 rows)\

 

 

sudo , sudo -s, sudo su , su 계정, su - 계정

더보기

$ sudo 명령어  >> sudo는 권한만 잠시

$ sudo -s

$ sudo su    >> sudo -s 또는 sudo su 명령어를 통해 root 계정을 반영구적으로 빌릴 

su   계정명 >> 현재 사용자를 로그아웃하지 않은 상태에서 다른 사용자의 계정으로 전환하는 명령어이다.

su - 계정명 >> 환경변수 까지 완전히 다른사용자것으로 사용. 

 

리눅스 명령어 sudo , su , su -    www.leafcats.com/168

'Web' 카테고리의 다른 글

[1028 운영] 운영 정보 모음  (0) 2021.05.02
[1028 shell script] 작성해본 기능 정리  (0) 2021.05.02
[1028 코딩] 코딩팁 모음  (0) 2021.05.02
[1028 mysql,mariadb,oracle]  (0) 2021.04.30
[1028 gradle] 에러모음  (0) 2021.04.27