docker--容器

    xiaoxiao2025-02-07  51

    一.容器是什么?

       容器(Container):容器是一种轻量级、可移植,并将应用程序进行打包的技术,使应用程序可以在几乎任何地方以相同的方式运行。   docker将镜像文件运行起来后,产生的对象就是容器。容器就相当于是镜像运行起来的一个实例。   容器具备一定生命周期。   容器创建后,会存储在宿主机/var/lib/docker/containers目录下

     二.容器的查看、创建、运行、暂停、取消暂停、重启、关闭、终止、删除:

    查看:

              docker ps              //查看正在运行的容器

              docker ps -a         //查看所有运行过的容器,包括已经不运行的容器

    创建一个待运行的容器:

             (1)创建容器:docker create -it --name [给容器起名] [依赖镜像] [容器内部命令]

                      演示:docker create -it --name abcd ubuntu ls -a

             (2)启动这个容器:docker start -a 容器名或容器id

                      演示:docker start -a abcd

      创建新容器并后台运行:(加-d参数)

               格式:docker run -itd --name 给容器起名 依赖镜像

               演示:docker run -itd --name aaa ubuntu

    暂停一个容器:

               格式:docker pause 容器名或容器id

               演示:docker pause 13ba395c5d0e

    取消暂停:

               格式:docker unpause 容器名或容器id

               演示:docker unpause 13ba395c5d0e

     容器重启:

               格式:docker restart 容器名或容器id

               演示:docker restart 13ba395c5d0e

     容器关闭:(不是立即执行,而是延迟关闭容器)

               格式:docker stop 容器名或容器id

               演示:docker stop 13ba395c5d0e

     容器终止:(立即强制关闭一个容器)

               格式:docker kill 容器名或容器id

               演示:docker kill 13ba395c5d0e

    删除一个容器:

                首先停止容器:docker stop 容器名或容器id

                然后再删除容器:docker rm 容器名或容器id

           或

                 对正在运行中的容器强制删除: docker rm -f 容器名或容器id

    强制删除全部容器:

                 docker rm -f $(docker ps -q -a)

    三.容器的进入与退出:

       创建容器的同时进入该容器

               格式 :docker run -it --name 给容器起名 依赖镜像 /bin/bash

               演示:docker run -it --name haha ubuntu-min /bin/bash

      手工方式进入容器

                 格式:docker exec -it 容器名或容器id /bin/bash

                 演示:docker exec -it haha /bin/bash

    脚本方式进入容器

              (1)在当前目录下sudo vim docker_in.sh,输入下面内容:

                           docker_in(){                              NAME_ID=$1                              PID=$(docker inspect --format {{.State.pid}} $NAME_ID)                              nsenter --target $PID --mount --uts --ipc --net --pid                         }                         docker_in $1

              (2) 给予脚本可执行权限: sudo chmod 777 docker_in.sh

              (2)通过命令进入容器:./docker_in.sh [容器id]

    四.基于容器创建镜像

       方式一

                格式:docker commit -m ”改动信息“ -a “作者信息” [容器id] [新镜像名:新镜像版本]

                演示:docker commit -m "mkdir hello" -a "sxf" 5aec24ca8f6c newubuntu:v1.0             

    方式二

                 格式 (1)先导出: docker export 容器id > 模板文件名.tar

                         (2)再导入:cat 模板文件名 | docker import - 导入后新镜像名

                 演示(1)docker export 5aec24ca8f6c > haha.tar

                         (2)cat haha.tar | docker import - new2ubuntu

    五.日志、信息、端口、重命名

       查看容器运行日志

              格式:docker logs 容器id

              演示:docker logs 5aec24ca8f6c

    查看容器详细信息

              格式:docker inspect 容器id

              演示:docker inspect 5aec24ca8f6c   

    查看容器端口信息

              格式:docker port 容器id

              演示:docker port 5aec24ca8f6c   

    容器重命名

              格式:docker rename 容器id或容器名 新容器名

              演示:docker rename 5aec24ca8f6c haha1

    最新回复(0)