Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 3d
- 좌표거리
- 도커
- python최단거리
- GCN
- graph
- MESH
- 도커 레이어
- geopandas
- pyvista
- 3d데이터
- 폴더조사
- GNN
- 패치분할
- 파이썬
- osmnx
- 그리드분할
- 귀여운고래
- 지하철역좌표
- 이미지빌드
- 동명이인찾기
- 알고리즘
- docker
- GIS
- 컨테이너
- STL
- 데이터입수
- geojson
- Set
- Python
Archives
- Today
- Total
이것저것 기록
[Docker] 도커 이미지 내려받기, 이미지 레이어란? 본문
0. 도커 이미지란?
- 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있다. 쉽게 이해하자면 가상환경 세팅을 위한 '레시피'이다. 내가 어떤 코드를 돌리기 위해서, pythondms 3.6버전을 쓰고 Numpy는 xx버전을 쓰고, pandas는 dd버전을 쓰고, 이 모든 것을 적어놓고 다운받으면 그대로 세팅해주는 레시피이다.
- 이러한 이미지를 여러개 쌓아, 내가 원하는 환경을 구축하는 것이다.
1. 기존에 다운받은 이미지가 있는지 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
- $docker images 명령어 입력
- 위와 같이 나온다면 기존에 다운받은 이미지가 아무것도 없는 것
2. 도커 내 이미지 검색하기
$ docker search sql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
crate CrateDB is a distributed SQL database that h… 181 [OK]
sqlpad/sqlpad Run SQL in your browser and chart the result… 31
nouchka/sqlite3 Sqlite3 command line in a docker container 30 [OK]
exoplatform/sqlserver SQL Server image for testing purposes. 24 [OK]
sflyr/sqlplus Oracle SQLplus client-in-a-docker 18 [OK]
coleifer/sqlite-web Docker image for running web-based SQLite da… 7
keinos/sqlite3 Latest release of SQLite3 container. (Alpine) 7
marcelhuberfoo/sqldeveloper Oracle SQL Developer to query/mange Oracle a… 5 [OK]
githubfree/sql_exporter Database agnostic SQL exporter for Prometheus 4 [OK]
sstc/sqlite3 A sqlite3 client. 4 [OK]
fabiang/sqlcmd Docker image for sqlcmd to query Microsoft S… 2 [OK]
mamohr/sqlcmd This image can be used to run SQL queries ag… 2 [OK]
sqlpassion/sqlserver 2
alexk002/sqlserver2019_demo 2
fufuhu/sql-migrate golang sql-migrate docker image 1 [OK]
googlesky/sqlmap unofficial sqlmap docker image based on Cent… 1
justwatch/sql_exporter Prometheus SQL Exporter 1
sqlflow/sqlflow SQLFlow official docker images 1
dbhi/sql-agent SQL Agent HTTP interface 1 [OK]
jakubknejzlik/sql-datapump Pump for database data migration using SQL. 0 [OK]
redgate/sqldatacatalog Redgate SQL Data Catalog 0
18fgsa/sql-clients Clients for assorted RDBMSes 0
jakubknejzlik/sql-query Simple container that runs SQL query 0 [OK]
firststreet/sql-to-s3 Backup SQL databases to S3 0
consensysbounties/sql_jobs
- $docker search [옵션] <검색어> 명령어를 입력
- --filter filter: Filter output based on conditions provided
- --limit int: Max number of search results (default 25)
- --no-trunc: Don't truncate output
- --format string: Pretty-print search using a Go template
- sql 이미지를 검색하면 위와 같이 나온다. 옵션 설명에 써있는 것처럼 limit int의 디폴트값이 25로 설정 돼 있기 때문에 모오오오든 이미지를 검색하고 싶다면 다음과 같이 입력한다.
- $docker search sql --no-trunc=True
3. 도커 이미지 내려받기
$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
69692152171a: Extracting [=======> ] 4.129MB/27.15MB
1651b0be3df3: Download complete
951da7386bc8: Download complete
0f86c95aa242: Download complete
37ba2d8bd4fe: Download complete
6d278bb05e94: Download complete
497efbd93a3e: Download complete
f7fddf10c2c2: Download complete
16415d159dfb: Downloading [> ] 2.157MB/115.8MB
0e530ffc6b73: Download complete
b0a4a1a77178: Waiting
cd90f92aa9ef: Waiting
- $docker pull [옵션] <이미지명>[:태그명] 명령어 입력
- 태그를 생력하면 항상 최신(latest) 이미지를 다운받는다. 만약 특정 버전의 이미지를 다운받고 싶다면 $docker pull mysql:5.7 << 이처럼 버전을 입력해주자.
- -a, --all-tags: Download all tagged images in the repository
- --platform string: Set platform if server is multi-platform capable
- -q, --quiet: Suppress verbose output
- --disable-content-trust: Skip image verification (default true)
- 여기서 도커 이미지 내 레이어에 대해 이해할 필요가 있다. 도커 이미지는 레이어로 구성된다. 위의 shell 코드에서 cd90f92aa93f, b0a4a1a77178등과 같은 건 모두 레이어이다. 레이어는 차례차례 쌓이며, mysql같은 경우 마지막 레이어는 cd90f92aa93f인 것이다. 이미지 내 레이어는 나중에 이미지를 빌드할 때 중요한 개념이기 때문에 한 번 짚고 넘어가는 게 좋다고 생각한다.
- 위 이미지에서 Images A를 살펴보면, 총 3개의 레이어로 구성 돼 있다. 이렇게 3개의 이미지 레이어로 구성된 도커 이미지를 $Docker run 명령어를 사용해 컨테이너로 만드는 순간!! 마지막에 container layer가 추가되면서 컨테이너로 동작하기 시작하는 것이다.
- 컨테이너로 동작하기 시작하면, 사용자가 입력하고 하는 모든 행동은 container layer에서 이루어지며, 환경을 구성하는 이미지 레이어를 변경하는 것은 불가능하다.
- 이미지 레이어는 컨테이너가 종료되도 사라지지 않지만, 컨테이너를 exit 하면 container layer만 사라지게 된다. 만약 내가 작업하던 container layer을 이미지 레이어로 저장하고 싶다면 $docker commit 명령어를 사용해준다. (이 부분은 나중에 새로 포스팅 해야겠다)
4. 내려받은 도커 이미지 확인
- $docker images 를 입력하여 잘 다운받아졌는지 확인해보자.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c0cdc95609f1 3 weeks ago 556MB
'Data Science > New Tech' 카테고리의 다른 글
[Docker] 도커 볼륨과 마운트 (0) | 2021.07.04 |
---|---|
[Docker] 파이썬 스크립트를 실행하는 도커 이미지 빌드하기 (1) | 2021.06.11 |
[Docker] 도커 컨테이너 실행하기 / 명령어, 옵션 정리 (0) | 2021.06.06 |
[Docker] 도커 컨테이너의 동작 원리 (LXC, namespace, cgroup) (0) | 2021.06.06 |
[Docker] 윈도우10에 도커 설치하기 (0) | 2021.06.04 |
Comments