Docker学习之Docker容器常用操作命令(7)

Docker学习之Docker容器常用操作命令

Ubuntu系统环境介绍介绍
Ubuntu版本:18.04.1
系统配置: 64位
Linux内核:5.3.0-42-generic
Docker版本: 19.03.8
备注:以下操作容器的命令以nginx为例

  • 运行容器:docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
参数 描述
–name 指定容器名,可自定义,不指定自动命名
-i 以交互模式运行容器
-t 分配一个伪终端,即命令行,通常-it组合来使用
-p 指定映射端口,讲主机端口映射到容器内的端口
-d 后台运行容器
-v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
acestang@acestang:~$ sudo docker run --name my-nginx -i -t -p 8080:8080 -d  nginx:latest
03b527fbbdd032cf6a3c97a3bb73ff98bec4e6aad59b40f26e162c3e7d27876f
  • 查看容器列表:docker ps -a -q
参数 描述
ps 查看正在运行的容器
-a 查看所有容器(运行的和未运行的)
-q 只查看容器的ID
#查看运行中的容器
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   About a minute ago   Up About a minute   80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
#查看所有容器
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                         PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   About a minute ago   Up About a minute              80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
1037c2890412        fce289e99eb9        "/hello"                 About an hour ago    Exited (0) About an hour ago                                    great_wilson
# 查看所有容器的容器ID
acestang@acestang:~$ sudo docker ps -a -q
03b527fbbdd0
1037c2890412
  • 启动容器:docker start [容器ID或容器名]
acestang@acestang:~$ sudo docker start my-nginx
my-nginx
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes        80/tcp, 0.0.0.0:8080->8080/tcp   my-nginx
  • 停止容器:docker stop [容器ID或容器名]
acestang@acestang:~$ sudo docker stop my-nginx
my-nginx
# my-nginx容器已经停止
acestang@acestang:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
  • 删除容器:docker rm -f [容器ID或容器名]
# 可以查看当前包含两个容器
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS               NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   10 minutes ago      Exited (0) 53 seconds ago                          my-nginx
1037c2890412        fce289e99eb9        "/hello"                 About an hour ago   Exited (0) About an hour ago                       great_wilson
#删除容器ID为:1037c2890412 的容器
acestang@acestang:~$ sudo docker rm -f 1037c2890412
1037c2890412
# 可以查看容器ID:1037c2890412 的容器已经删除
acestang@acestang:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS               NAMES
03b527fbbdd0        nginx:latest        "nginx -g 'daemon of…"   10 minutes ago      Exited (0) About a minute ago                       my-nginx
  • 查看日志:docker logs [容器ID或容器名]

  • 进入正在运行的容器:docker exec -it [容器ID或者容器名] /bin/bash

进入正在运行的容器并且开启交互模式终端
/bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。
也可以用docker exec在运行中的容器执行命令

#进入到my-nginx容器
acestang@acestang:~$ sudo docker exec -it my-nginx /bin/bash
#查看nginx 的版本
root@03b527fbbdd0:/# nginx -v
nginx version: nginx/1.17.9
  • 退出容器:Ctrl+P+Q

备注: docker run 和 docker start的区别:
docker run:相当于执行了两步操作,将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start),docker run 只在第一次运行时使用,将镜像放到容器中,以后再次启动这个容器时,只需要使用命令docker start 即可。
docker start:启动已经存在的容器

原创文章 25 获赞 0 访问量 1811

猜你喜欢

转载自blog.csdn.net/ttf0203/article/details/105106791