$ docker -v
Docker version 20.10.17, build 100c701
$ docker-compose -v
Docker Compose version v2.13.0
특히 docker-compose 의 버전은 꼭 v2. 점대여야 합니다.
$ ls -al /tmp 파일에 보시면 ( wsl2 에서 docker-desktop 쓸때 gui 화면 사용하려면 )
해당 디렉토리가 있어야 합니다.
필요한 app 설치
sudo apt install -y expect
sudo apt install -y mariadb-server
sudo apt install -y mariadb-client
docker 수동 설치
참조
https://docs.docker.com/engine/install/ubuntu/
Install Docker Engine on Ubuntu
Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.
docs.docker.com
bash 만 따온 거
기존 파일 삭제 (필요시 할것)
$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
$ sudo apt autoremove <<------ 이거는 사용할 떄 주의 해야됨
설치 스크립트
# Add Docker's official GPG key:
# set -e # 하나라도 실패시 bash 종료
set -x # 무슨명령어 실행되는지 확인
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
set +x # 무슨명령어 실행되는지 확인
설치 후
$ docker ps 하면
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json": dial unix /var/run/docker.sock: connect: permission denied
하면서 에러가 나는데 이때
$ sudo docker ps
하면 에러가 안남
이유는 /var/run/docker.sock 해당 파일을 보면 알 수 있듯 도커도 보통 프로세스간 로컬에서 통신방법중 하나인 Unix 도메인 socket 통신을 하고, 그 과정에서 편리하게 통신하기 위한 방법으로 docker 데몬 자체에서 root 권한으로 통신한다. 따라서 sudo docker ps 하면 되는 건데...
할때마다 sudo 를 칠 순 없으니 docker 그룹에 사용자($USER)를 추가해 사용하는 편이 좋다.
docker 그룹에 $USER를 보조그룹으로 추가하는 방법
$ sudo usermod -aG docker $USER
$ newgrp docker
이렇게 하거나 (newgrp docker <- 권한 갱신 명령어)
/etc/group 을 root 권한으로 접속해서 해당 부분을 추가하고 저장 해 주면 된다
---------------------
$ sudo apt install docker-compose -y 로 설치 해도 되긴 되는데 이렇게 설치하면
$ docker-compose -v 해보면 버전이 1.xx 대인걸 알 수 있다.
따라서 해당 스크립트로 설치 하면 편함
docker-compose 최신 설치 스크립트 [ 수동 설치시 docker-compose 버전 확인 꼭 필요함 ( 그냥 apt install 하면 v1점대 버전이라 curl 을 이용한 설치가 요구 됨 ) ]
$ docker-compose -v 해서 v2.~~~ 이면 굿
#!/bin/bash
# set -e # 하나라도 실패시 bash 종료
set -x # 무슨명령어 실행되는지 확인
#버전확인
docker-compose -v
#기존 설치 삭제
sudo apt remove docker-compose -y
#jq library 설치
sudo apt install jq -y
#최신 버전 설치
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
DESTINATION=/usr/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION
#설치 버전 확인
docker-compose -v
# exit 0
set +x # 무슨명령어 실행되는지 확인
사설
sudo 명령어 칠때마다 비번 치기 싫을 때 ( 보안상 안좋음 )
일반 사용자에게 sudo 권한 부
밑에 스크립트 사용하면 됨
#!/bin/bash
set -e # 하나라도 실패시 bash 종료
set -x # 무슨명령어 실행되는지 확인
# ----------------------------------------------------------------------------------------------------------
# 선택할 부분
# 1 권한 1000인놈으로 쓴다 ( 디폴트 유저 )
# USER_NAME=$(cat /etc/group | grep 1000 | cut -d: -f1)
# 2 해당 USER 네임으로 쓴다
USER_NAME=$USER
echo "USER_NAME : ${USER_NAME}"
echo "$USER_NAME ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/$USER_NAME
ls /etc/sudoers.d
cat /etc/sudoers.d/$USER_NAME
echo '${USER_NAME} sudo 권한 과정 완료'
# ----------------------------------------------------------------------------------------------------------
sudo usermod -aG docker $USER_NAME
sudo usermod -aG docker 'root'
echo 'docker sudo 권한 과정 완료'
이거 스크립트 쓰거나
→ 일반사용자 sudo 권한 부여
$ sudo passwd 명령어로 root 계정의 비밀번호 설정 후,
$ su root 명령어로 root 계정에 접근해서
$ echo "$USER_NAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$USER_NAME 입력
※ {$USER_NAME}은 본인의 User 이름과 같게 세팅할 것.
잘됬는지 확인 :
- ls /etc/sudoers.d/$USER_NAME
- cat /etc/sudoers.d/$USER_NAME
'협업툴,가상환경 정리 > docker_정리' 카테고리의 다른 글
docker_hub이용하기 pull and push (0) | 2022.12.14 |
---|---|
도커 컴포즈 깃랩ci docker-compose with .git-lab_ci.yml (0) | 2022.11.21 |
docker container to container ssh 접속 (1) | 2022.10.05 |
docker-compose 예제 정리 (0) | 2022.09.30 |
docker compose 설명 (1) | 2022.09.23 |
댓글