본문 바로가기

개발/Linux(Ubuntu)

04 - Docker

1. 설치

# curl 이 설치되어 있지 않다면

sudo apt install curl

curl -fsSL https://get.docker.com/ | sudo sh

 

2. 계정에 docker root 권한 부여

# docker는 root 권한이 필요함
# ex) sudo docker version
# 매번 sudo ~ 실행 혹은 현재 계정에 권한을 부여

sudo usermod -aG docker $USER	# 현재 유저에게 부여
sudo usermod -aG docker mf 		# 유저 mf에게 부여

바로 docker 명령어를 사용하면 permission denied가 출력되지만

재로그인 하면 적용된다.

대충 su root 했다가 su 내계정으로 바꾸니 제대로 인식되었다.

 

 

3. 설치 확인

docker version
Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:47:57 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:45:46 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

만약 Client 정보까지만 출력되고 Server 정보가 아닌 Got permission denied~~~~ 가 출력된다면

sudo 명령어로 실행하든가, 아니면 2번의 권한부여를 진행해줘야 한다.

 

4. 기본 명령어

4 - 1 container

docker run [option] [image]	# 컨테이너 실행

docker ps [option]	# 실행중인 컨테이너 목록 확인
docker ps -a		# 모든 컨테이너 목록 출력

docker stop [option] [container]	# 컨테이너 중지

docker rm [container1] [container2]	# 컨테이너 삭제

# 중지된 컨테이너 전부 삭제
docker rm -v $(docker ps -a -q -f status=exited)

4 - 2 images

1) 이미지 목록 출력

docker images [options]
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mysql        5.7       f26e21ddd20d   2 days ago    450MB
mysql        latest    667ee8fb158e   2 days ago    521MB
redis        latest    bba24acba395   2 days ago    113MB
ubuntu       18.04     b67d6ac264e4   2 weeks ago   63.2MB

2) 이미지 다운로드

# docker pull [options]
# ex
docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
58690f9b18fc: Pull complete
b51569e7c507: Pull complete
da8ef40b9eca: Pull complete
fb15d46c38dc: Pull complete
Digest: sha256:0f71fa8d4d2d4292c3c617fda2b36f6dabe5c8b6e34c3dc5b0d17d4e704bd39c
Status: Downloaded newer image for ubuntu:16.04
docker.io/library/ubuntu:16.04

3) 이미지 삭제

# docker rmi [name:tag]
# ex
docker rmi ubuntu:16.04
Untagged: ubuntu:16.04
Untagged: ubuntu@sha256:0f71fa8d4d2d4292c3c617fda2b36f6dabe5c8b6e34c3dc5b0d17d4e704bd39c
Deleted: sha256:b6f50765242581c887ff1acc2511fa2d885c52d8fb3ac8c4bba131fd86567f2e
Deleted: sha256:0214f4b057d78b44fd12702828152f67c0ce115f9346acc63acdf997cab7e7c8
Deleted: sha256:1b9d0485372c5562fa614d5b35766f6c442539bcee9825a6e90d1158c3299a61
Deleted: sha256:3c0f34be6eb98057c607b9080237cce0be0b86f52d51ba620dc018a3d421baea
Deleted: sha256:be96a3f634de79f523f07c7e4e0216c28af45eb5776e7a6238a2392f71e01069

 

4 - 3 log, exec

1) log

docker logs --tail 10 [container]

2) exec

현재 실행중인 컨테이너에 명령어 전달하는 기능(ssh는 권장하지 않음)

docker exec [option] [container] [command]

 

5. 도커 이미지 만들기

 

'개발 > Linux(Ubuntu)' 카테고리의 다른 글

04 - mariadb(mysql)  (0) 2022.04.01
03 - FTP  (0) 2022.03.31
02 - SSH  (0) 2022.03.31
01 - OS  (0) 2022.03.31