docker的常用命令

March 23, 2023

首先是docker ps -a命令,可以看到正在運行的容器列表。容器和 Image 是不一樣的,有點類似【類和對象】的關係

[ec2-user@ip-172-31-7-210 src]$ docker ps -a
CONTAINER ID   IMAGE                     COMMAND        CREATED             STATUS                 PORTS                                       NAMES
c88bea1dfcef   kotaku_go_server:v1.1.0   "./imserver"   About an hour ago   Up About an hour   0.0.0.0:5211->5211/tcp, :::5211->5211/tcp   kotakuServer

使用docker stop containerID命令,可以停止正在運行的容器

使用docker rm containerID命令,可以刪除停止的容器

使用docker images命令,可以看到現有的 images 列表

[ec2-user@ip-172-31-7-210 src]$ docker images
REPOSITORY         TAG             IMAGE ID       CREATED             SIZE
kotaku_go_server   v1.1.0          3bcfb9f3bc36   About an hour ago   363MB
golang             1.19.2-alpine   f9a40cb7e8ec   5 months ago        352MB

使用docker rmi IMAGEID命令,刪除 image

使用 docker build -t kotaku_go_server:v1.1.0 . 命令,可以編譯 Dockerfile 文件,產生 image,-t 是指定 tag 的選項

[ec2-user@ip-172-31-7-210 src]$ docker build -t kotaku_go_server:v1.1.0 .
Sending build context to Docker daemon  338.9kB
Step 1/5 : FROM golang:1.19.2-alpine
---> f9a40cb7e8ec
Step 2/5 : WORKDIR /Users/huze/Desktop/gotest/GoIMServer/src
---> Running in 7add31dba46d
Removing intermediate container 7add31dba46d
---> 53ecf72edcae
Step 3/5 : ADD . .
---> 3a0ddcda139a
Step 4/5 : RUN go build -o imserver
---> Running in fe4c3a5071a9
go: downloading github.com/gorilla/mux v1.8.0
go: downloading github.com/gorilla/websocket v1.5.0
Removing intermediate container fe4c3a5071a9
---> 42923ef821b5
Step 5/5 : CMD [ "./imserver" ]
---> Running in ef619009a570
Removing intermediate container ef619009a570
---> 3bcfb9f3bc36
Successfully built 3bcfb9f3bc36
Successfully tagged kotaku_go_server:v1.1.0

使用docker run —name kotakuServer -d -p 5211:5211 kotaku_go_server:v1.1.0命令,可以啟動容器運行 image,—name 可以指定容器的名字,否則會得到一個隨機的名字,運行成功後打印容器的 ID

[ec2-user@ip-172-31-7-210 src]$ docker run --name kotakuServer -d -p 5211:5211 kotaku_go_server:v1.1.0
c88bea1dfcef539f8b39af2e6ecc5d7ee469bc1de2ad5c245b7b601143e8b4b9