iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0

今天要來介紹 Image & Container 更多基本的使用方式。

根據昨天的文章,應該各位都可以抓到一個基本的 Image 及生出一個 Container 了吧。

那麼假設今天有許多 Image 及 Container ,我們需要對其中一些進行管理及操作,又該如何使用呢?

Image

首先先來說說 Image 的管理吧。假設今天只有文字介面,那要如何搜尋並下載 Image 呢?

# ===== Image =====
# 搜索 Dockerhub image (或找另一台電腦上 dockerhub 找)
$ docker search <image_name>
# 例如
$ docker search python

# 從 Dockerhub 拉回 image
$ docker pull [repository/]<image_name>[:<tag>]
# 例如
$ docker pull python:3.9.7

使用以上兩個指令就可以搜尋並下載 Image 了。

有了 Image 之後,那要如何列出所有已下載的 Image 呢?

# 列出本地 image
$ docker images
$ docker image ls

以上兩種指令皆可以列出所有已下載的 Image 。

列出來了所有 Image 之後,如果需要刪除不用的 Image 又該如何刪除呢?

# 移除 image
$ docker rmi <image_name>[:<tag>] or <image_id>
# 例如
$ docker rmi python:3.9.7
$ docker rmi 208aa7e03e89

只要透過 rmi 就可以刪除已下載的 Image 了,這邊切記是 rmi (Remove Image) 才是刪除 Image ,不要下錯指令了。

Container

接著說說 Container 的管理吧,如何建立就不用說了,前一篇已經有介紹過了,那要如何列出所有的 Container 呢?

# 列出本地 Container
# -a:顯示所有 Container。預設顯示執行中的 Container。
$ docker ps [-a]
$ docker container ls [-a]

這兩種指令都可以列出所有的 Container 。

顯示所有的 Container 之後,如果需要進到 Container 內執行某些指令的話呢?

# 接入 container 的 stdin, stdout 及 stderr
$ docker attach <container_id> or <container_name>
# 例如
$ docker attach 3a2985bcc416

attach 就可以接到當初建立 Container 的 stdin, stdout 及 stderr,需要注意的是如果當初建立 Container 時沒有使用 -i-t 是無法接到的喔。

那如果當初沒有使用 -i-t 又該如何接到 stdin, stdout 及 stderr 呢?

簡單啊,建立一個 bash 接出他的 stdin, stdout 及 stderr 不就行了。

# 在 container 內執行指令
$ docke exec [-it] <container_id> or <container_name> <command>
# 例如
$ docker exec -it 3a2985bcc416 bash

接著就只剩下刪除 Container 了,那要如何刪除呢?

# 移除 container
$ docker rm <container_id> or <container_name>
# 例如
$ docker rm 3a2985bcc416

這樣就可以將不在需要的 Container 刪除掉了。

那麼就先到這邊, Image 及 Container 大概就介紹完了。

大家掰~掰~


上一篇
Day 03 Docker Image & Container - 1
下一篇
Day 05 DockerFile - 1
系列文
30天漫遊雲端之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言