docker的基本命令使用

发布时间 2024-01-03 19:15:25作者: FuShudi

docker image/images

docker image与images 的区别在于docker images可以直接使用,docker image不可以直接使用,看例子

[root@docker ~]# docker images    
# 这是直接使用docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
busybox      latest    a9d583973f65   2 years ago   1.23MB
nginx        latest    298ec0e28760   2 years ago   133MB

[root@docker ~]# docker image
Usage:  docker image COMMAND

Manage images

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed inf
# 可以看到直接使用docker image 是会报错的
# 可以通过docker image ls 这条命令去查看所有镜像 docker image ls = docker images
[root@docker ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
busybox      latest    a9d583973f65   2 years ago   1.23MB
nginx        latest    298ec0e28760   2 years ago   133MB

docker pull

docker pull 命令可以将指定的镜像拉取到本地

[root@docker ~]# docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
ca3cd42a7c95: Pull complete 
Digest: sha256:e103c1b4bf019dc290bcc7aca538dc2bf7a9d0fc836e186f5fa34945c5168310
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

docker save

docker save 命令可以将指定的镜像保存为本地文件,注意,是镜像保存到本地

[root@docker ~]# docker save busybox > busybox.tar 
[root@docker ~]# ls
anaconda-ks.cfg  busybox.tar 

docker load

docker load 是将save导出的tar包导入到docker 镜像

[root@docker ~]# docker load -i busybox.tar 
# 可以使用 -i选项指定需要导入的文件名
2983725f2649: Loading layer   1.45MB/1.45MB
Loaded image: busybox:latest

#### docker rmi
docker rmi 是删除镜像 rmi 是remove image的缩写
```bash
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    49f356fa4513   2 years ago   5.61MB
busybox      latest    a9d583973f65   2 years ago   1.23MB
nginx        latest    298ec0e28760   2 years ago   133MB
[root@docker ~]# docker rmi alpine
Untagged: alpine:latest
Untagged: alpine@sha256:e103c1b4bf019dc290bcc7aca538dc2bf7a9d0fc836e186f5fa34945c5168310
Deleted: sha256:49f356fa4513676c5e22e3a8404aad6c7262cc7aaed15341458265320786c58c
Deleted: sha256:8ea3b23f387bedc5e3cee574742d748941443c328a75f511eb37b0d8b6164130
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
busybox      latest    a9d583973f65   2 years ago   1.23MB
nginx        latest    298ec0e28760   2 years ago   133MB

docekr run

docker run 用来创建并运行一个容器

[root@docker ~]# docker run -itd nginx
# -t 是给一个终端
# -i 是交互式,一般 it会在一起使用,意思是运行容器会有一个交互式的终端
# -d 是放在后台运行
4c45f7885e579bbbdc795a1489585cad989558c19e832e94dce4dab48b7ea69c

docker start | stop

docker start 是将一个未启动的容器启动起来,stop则是停止容器运行

[root@docker ~]# docker stop bold_shockley
# 这个bold_shockley是容器的名字,可以在创建容器的时候使用 --name 指定容器名
bold_shockley

docker ps

docker ps 用来查询容器

[root@docker ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 默认是只会列出正在运行的容器,如果要查到所有容器,包括没有运行的容器可以使用 -a 选项
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                     PORTS     NAMES
4c45f7885e57   nginx     "/docker-entrypoint.…"   8 minutes ago   Exited (0) 3 minutes ago             bold_shockley