目录

1、docker run

2、docker ps

3、两种退出容器的方法

4、容器的操作

5、查看容器的详细信息

6、进入一个正在运行的容器

7、把容器里的数据拷贝到目的主机 

8、导入或导出容器

9、Docker命令的总结


1、docker run

  • --name =“容器的名字”        为容器指定一个新名字
--name string                    Assign a name to the container
  • -d       后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-d, --detach                         Run container in background
  • -it      启动交互式容器     ( -i    interactive          -t    tty)
  • -P     随机端口映射
  • -p     指定端口映射

举例:启动一个ubuntu容器

[root@localhost ~]# docker run --name="my_ubuntu" -it -d ubuntu /bin/bash

2、docker ps

  • docker ps            查看正在运行的容器
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
dd495b29eef4   ubuntu    "/bin/bash"   6 seconds ago        Up 3 seconds                  my_ubuntu
c76022d34927   ubuntu    "/bin/bash"   About a minute ago   Up About a minute             interesting_pasteur
  • docker ps -a        查看所有的容器
[root@localhost ~]# docker ps --all
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS                    PORTS     NAMES
dd495b29eef4   ubuntu                 "/bin/bash"              3 minutes ago   Up 3 minutes                        my_ubuntu
c76022d34927   ubuntu                 "/bin/bash"              5 minutes ago   Up 4 minutes                        interesting_pasteur
17b10c53b210   hello-world            "/hello"                 6 days ago      Exited (0) 6 days ago               condescending_bhabha
cef1fc2cc060   my_de/my_ubuntu:3.14   "/bin/bash"              6 days ago      Exited (0) 3 days ago               cool_boyd
897f200b2d42   redis                  "docker-entrypoint.s…"   6 days ago      Exited (0) 3 days ago               optimistic_shockley
27034d120c68   redis                  "docker-entrypoint.s…"   6 days ago      Exited (0) 6 days ago               blissful_mendeleev
2e76ad817c05   redis                  "docker-entrypoint.s…"   6 days ago      Exited (0) 6 days ago               musing_newton
41b12154b9ec   ubuntu                 "/bin/bash"              6 days ago      Exited (0) 3 days ago               my_ubutu
b6d8a11fab25   ubuntu                 "/bin/bash"              6 days ago      Exited (130) 6 days ago             focused_liskov

3、两种退出容器的方法

  • 1、exit                 退出容器后容器停止
  • 2、ctrl + p + q      退出容器后容器不停止

4、容器的操作

  •  启动已停止运行的容器        docker start容器ID或者容器名
  • 重启容器                               docker restart容器ID或者容器名
  • 停止容器                               docker stop 容器ID或者容器名
  • 强制停止容器                        docker kill 容器ID或容器名
  • 删除已停止的容器                 docker rm容器ID

5、查看容器的详细信息

  •  1、查看容器日志
[root@localhost ~]# docker logs a714510538d3
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-12-08 09:35:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-12-08 09:35:09+00:00 [Note] [Entrypoint]: Initializing database files
  • 2、查看容器的进程
[root@localhost ~]# docker top  dd
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                8161                8138                0                   10:41               pts/0               00:00:00            /bin/bash
  • 3、查看容器内部信息
[root@localhost ~]# docker inspect dd
[
    {
        "Id": "dd495b29eef404578fa7946c8e9727c1431a9ce7b99e5f05a0bc1d4001fe45cb",
        "Created": "2022-12-03T15:41:50.732405738Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 8161,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2022-12-03T15:41:52.780187309Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },

6、进入一个正在运行的容器

[root@localhost ~]# docker exec -it dd495b29eef4 /bin/bash
root@dd495b29eef4:/#
[root@localhost ~]# docker attach dd 
root@dd495b29eef4:/#
  • 种方法有什么不同:
  • attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
  • exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止

7、把容器里的数据拷贝到目的主机 

[root@localhost ~]# docker cp dd495b29eef4:/tmp/aaa /tem/

8、导入或导出容器

  • export 导出容器的内容留作为一个tar归档文件[对应import命令]
  • import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
  • 举例:
  • docker export 容器ID>文件名tar
  • cat 文件名.tar | docker import- 镜像用户/镜像名:镜像版本号
  •  实例导出:
[root@localhost ~]# docker export f1b60a7302e0 > myimages.tar
[root@localhost ~]#
  •  导入成镜像
[root@localhost ~]# ls
anaconda-ks.cfg  myimages.tar
[root@localhost ~]# cat myimages.tar | docker import - myubuntu
sha256:2735e861e7c54b2a2b6026619c63c096bdbbf5cd70fe33b4a5233fa3a017cd8e
[root@localhost ~]# docker images
REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
myubuntu          latest    2735e861e7c5   51 seconds ago   72.8MB
qiang_ge/ubuntu   latest    25d741360324   8 days ago       72.8MB

9、Docker命令的总结

docker 运行别人的yml docker 调用另一容器命令_bash

# 本地镜像管理命令
docker images				# 列出本地镜像。
docker rmi				    # 删除本地一个或多个镜像。
docker tag				    # 标记本地镜像,将其归入某一仓库。
docker build			    # 使用 Dockerfile 创建镜像。
docker history				# 查看指定镜像的创建历史。
docker save				    # 将指定镜像保存成 tar 归档文件。
docker load			     	# 导入使用 docker save 命令导出的镜像。
docker import				# 从归档文件中创建镜像。

# 容器操作命令
docker ps				    # 列出本地容器.
docker inspect				# 获取容器/镜像的元数据。
docker top				    # 查看容器中运行的进程信息,支持 ps 命令参数。
docker attach				# 连接到正在运行中的容器,类比exec。
docker events				# 从服务器获取实时事件。
docker logs				    # 获取容器的日志。
docker wait				    # 阻塞运行直到容器停止,然后打印出它的退出代码。
dokcer export				# 将文件系统作为一个tar归档文件导出到STDOUT。
docker port			    	# 列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众            
                              的端口。

# 容器生命周期管理命令
docker run			        # 创建一个新的容器并运行一个命令
docker start/stop/restart	# 启动/停止/重启 一个或多个容器
docker kill			    	# 杀掉一个运行中的容器。
docker rm				    # 删除一个或多个容器。
docker pause/unpause	    # 暂停/恢复 容器中所有的进程。
docker create				# 创建一个新的容器但不启动它。
docker exec			    	# 在运行的容器中执行命令(新的终端窗口),类比attach。

# 容器rootfs命令
docker commit				# 从容器创建一个新的镜像。
docker cp				    # 用于容器与主机之间的数据拷贝。
docker diff				    # 检查容器里文件结构的更改。

# 镜像仓库管理命令
docker login				# 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout				# 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker pull				    # 从镜像仓库中拉取或者更新指定镜像
docker push				    # 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
docker search				# 从Docker Hub查找镜像

# docker 信息
docker info				    # 显示 Docker 系统信息,包括镜像和容器数。
docker version				# 显示 Docker 版本信息。