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 |