TL;DR;
๐กContainer Create from image
๊ทธ๋ฅ ์ปจํ ์ด๋ ๋นจ๋ฆฌ ์คํ์ํค๊ณ ์ถ๋ค๋ฉด ๋ค์์ ๊ธฐ์ตํ๋ผ.
$ docker run [OPTIONS] [image-name] [Command]
# OPTIONS List
# -it : ์คํํ์๋ง์ stdin/out CLI ์์
# -p : ํฌํธ ๋ฐ์ธ๋ฉ
# --name: ์์ฑ๋ ์ปจํ
์ด๋ ์ด๋ฆ
# -d : ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ (์๋ต์ ํฌ๊ทธ๋ผ์ด๋ ์คํ)
# Command: ์คํํ ๋ช
๋ น์ด
$ docker run -it -p 7379:6379 --name redis-test redis
# => ์คํํ์๋ง์ CLI๋ฅผ ์์ํ๊ณ
# => ํธ์คํธ 7379 ํฌํธ๋ฅผ ์ปจํ
์ด๋ 6379 ํฌํธ๋ก ๋ฐ์ธ๋ฉ / ํฌ์๋ฉ ํ๊ณ
# => ์ปจํ
์ด๋ ๋ช
์ 'redis-test' ๋ฉฐ
# => 'redis' ๋ผ๋ ์ด๋ฆ์ ์ด๋ฏธ์งํ์ผ์ ์ธ์คํด์คํํ๋ค.
# โ ๏ธ local ์ ํด๋น ์ด๋ฏธ์ง๊ฐ ์๋ ๊ฒฝ์ฐ, dockerhub ์์ pull ํด์จ๋ค.
โ ๏ธ ๋ฐ๋์ 'OPTIONS' ๊ฐ ๋จผ์ ์ค๊ณ [Image-filename] ์ด ๋์ค์ ์์ผํ๋ค.
์์๋ฅผ ์๊ฒฉํ ์ง์ผ์ผํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด `Bad directive or wrong number of arguments` ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ฃผ์ ๋ช ๋ น์ด ์ ๋ฆฌ
๐ ์ ๋ฆฌํ ์์๋๋ก ์คํ๋ง ํด๋ ๊ธฐ๋ณธ ์ค์ ์ ๋๋๋ค.
- Container id List
์ปจํ ์ด๋ ๋ชฉ๋ก ์ถ๋ ฅ
$ docker ps -a
- Container image List
์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ชฉ๋ก ์ถ๋ ฅ
$ docker images
- Container Delete
$ docker rm [container-id]
- Container Start
์ค๋จ์ํ์ธ ์ปจํ ์ด๋๋ฅผ ์์์ํค๋ ๋ช ๋ น์ด
- Container Execute
์ผ์ ธ์๋ ์ปจํ ์ด๋๋ฅผ ์คํ์ํค๋ ๋ช ๋ น์ด
$ docker exec [OPTIONS] [container-name] COMMAND [ARG...]
# Example
# $ docker exec --it redis-test redis-cli
# => 'redis-test' ๋ผ๋ ์ปจํ
์ด๋ ๋ฒ ์์๊ณผ ํจ๊ป ์คํ์ํค๊ณ 'redis-cli' ๋ช
๋ น์ด๋ฅผ ์คํํ๋ค.
- Container Rename
# ์ปจํ
์ด๋๋ช
๋ณ๊ฒฝ
$ docker rename [Old-Container-Name] [New-Container-Name]
- Container monitor
# ๋ชจ๋ ์ปจํ
์ด๋ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, PID ๋ฑ ํ์ธ
$ docker stats
# ํน์ ์ปจํ
์ด๋ ๋ชจ๋ํฐ๋ง
$ docker stats [Container-Name]
- Image tagging
๋ก์ปฌ ์ด๋ฏธ์ง๋ฅผ ํน์ ๋ค์์คํ์ด์ค (๋ ์ง์คํธ๋ฆฌ)์ ์ด๋ฏธ์ง์ ๋งตํํ๋ ๊ฒ์ด๋ค.
# source -> target mapping
$ docker [source-image]:[tag-name] [target-image]:[tag-name]
# ํ๊ฒ ์ด๋ฏธ์ง๋ฅผ ๋ค์์ฒ๋ผ ๋ ์์ธํ ์ง์ ํ ์ ์๋ค.
# [Registry URI]/[namespace]/[image-name]:[tag-name]
$ docker.io/m-falcon/falcon:v1.0
# registry: docker.io
# namespace: m-falcon
# target image: falcon
# tag: v1.0
ํ๊ฒ์ด๋ฏธ์ง์๋ ๋ค์์คํ์ด์ค๊ฐ ๋ถ๋๋ฐ, ์๋ต์ ๊ธฐ๋ณธ์ ์ผ๋ก docker.io (DockerHub) ๊ฐ ๋๋ค.
๋ค๋ฅธ ๋ค์์คํ์ด์ค๋ก
Tagging ํ๋ ์๊ฐ ์ด๋ฏธ์ง๊ฐ ์ถ๊ฐ ์์ฑ๋๋ค.
$ docker tag ubuntu:utility falcon/kimori:v1.0
# DockerHub ์ 'falcon' ์ ์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ์
# ์ด๋ฏธ์ง๋ช
'kimori' ํ๊ทธ๋ '1.0' ์ผ๋ก ์
๋ก๋ํ๋ค.
$ docker push falcon/kimori:1.0
- Image backup & Restore
์ด๋ฏธ์ง ๋ฆฌํฌ์งํ ๋ฆฌ์ push ํ์ง ์๊ณ local ์ ๋ฐ๋ก save ํด๋ ์ ์๋ค.
`save` ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ก์ปฌ์ ์ด๋ฏธ์ง ํ์ผ์ ์ ์ฅํ ์ ์๋ค.
# docker image save [username]/[image-name]:[tag-name] -o [filename]
$ docker image save m-falcon/eclipse-temurine:17-jdk-alpine -o 17-jdk-alpine.tar
`load` ๋ช ๋ น์ด๋ก ์ ์ฅ๋ ๋ก์ปฌ ์ด๋ฏธ์ง๋ฅผ Docker ์ Load ํ ์ ์๋ค.
# docker load --input [file-name]
$ docker load --input 17-jdk-alpine.tar
์กฐ๊ธ์ ๋ณต์กํ ์ปจํ ์ด๋ ์คํ
์ง์ ๋ ๋ณผ๋ฅจ์ ๋ง์ดํ , bash ์๋ก ์คํ, ํฌํธ ๋ฐ์ธ๋ฉ
$ docker run -it -p [external port]:[internal port] --name [container name] [image id] -v [host directory]:[container directory] /bin/bash
ํฌํธ ๋ฐ์ธ๋ฉ : ํธ์คํธ ์ปดํจํฐ -> ์ปจํ ์ด๋ ์ ์์ ์ฌ์ฉํ ํฌํธ๋ฅผ ๋ช ์ํ์ฌ ๋ฐ์ธ๋ฉํ๋ค.
โ ๏ธ [Syntax Error] Docker ์ด๋ฏธ์ง ์ด๋ฆ์ ๋ง์ง๋ง์ธ์๋ก ์ ๋ ฅํด์ผํ๋ค.
Host OS port ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ์คํ
--net host ์ต์ ์ ๋ถ์ด๋ฉด ๋ณ๋์ port ๋ฐ์ธ๋ฉ์ด๋ docker0 (Default bridge network) ์์ด ํธ์คํธ ๋คํธ์ํฌ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
Create docker image from container
์ด๋ฏธ์ง ํ์ผ์ Docker Hub์ ๋ฃ๊ธฐ ์ํด
๋ฐ๋์ ์ด๋ฏธ์ง ํ์ผ ์ด๋ฆ์
username/repository-name:tag-name ์ผ๋ก ์์ฑํด์ผํ๋ค.
์ปจํ ์ด๋ -> ์ด๋ฏธ์งํ
์ ์์ ์ผ๋ก ์๋ฃ๋๋ฉด Docker Desktop์ ์ค์ ํ ์ด๋ฏธ์ง ์ด๋ฆ์ผ๋ก ์ด๋ฏธ์ง๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
Create image from dockerfile
Dockerfile ๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ์ ์์ฑํ๋ ๋ช ๋ น์ด
feat. ์ํ์น ๋ฐ๋ชฌ ์คํ
$ /usr/sbin/httpd -D FOREGROUND
/usr/sbin/httpd ๋ ์ํ์น๊ฐ ์ค์น๋ ๊ฒฝ๋ก์ด๋ค.
[root@3b8abc49dca9 /]# /usr/sbin/httpd -D apache
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[root@3b8abc49dca9 /]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 48773 /etc/httpd/run/cgisock.238
unix 2 [ ] DGRAM 50211
Active Bluetooth connections (servers and established)
Proto Destination Source State PSM DCID SCID IMTU OMTU Security
Proto Destination Source State Channel
Docker Hub Command
์ฌ์ง ํ๋ฐฉ์ผ๋ก ์ ๋ฆฌํด๋ณด์.
๐ Reference
'๊ธฐํ > Docker' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] volume with CLI (0) | 2022.05.19 |
---|---|
[Docker] volume ์ฌ์ฉํ (0) | 2022.05.18 |
[Docker] Docker compose (0) | 2021.12.20 |
Docker ๊ฐ๋ (0) | 2021.12.18 |
Docker? (0) | 2020.01.02 |