Docker容器操作 作者:csdn 日期:2023-11-28 栏目:计算机分类:90 人气:483 ### Docker容器启动 Docker启动容器有两种方式: - 基于镜像新建一个容器并启动; - 将处于终止状态 (exited)的容器重新启动 当利用docker run来创建容器时,Docker在后台运行的步骤如下: - 检查本地是否存在指定的镜像,不存在就从公有仓库下载 - 利用镜像创建并启动一个容器 - 分配一个文件系统,并在只读的镜像层外面挂在一层可读写层 - 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 - 从地址池配置一个ip地址给容器 - 执行用户指定的应用程序 - 执行完毕后容器被终止 #### 基于镜像新建容器并启动 通过如下命令来快速启动容器: ``` docker run --name <mydocker> -d IMAGE:TAG --network test-net --dns=114.114.114.114 --rm -h host_ubuntu /bin/bash -c "while true;do echo 正在运行; sleep 1;done" ``` 或者:创建容器,两步走(不常用) ``` docker create centos:latest /bin/bash bb7f32368ecf0492adb59e20032ab2e6cf6a563a0e6751e58930ee5f7aaef204 docker start stupefied_nobel stupefied_nobel ``` 举个例子,比如想启动一个 ubuntu 容器, 并通过终端输出 Hello world: 执行命令如下: ``` docker run ubuntu:latest /bin/echo 'Hello world' ``` 注意,上面这行命令运行容器,在输出 Hello world 后就会终止运行。如果想以交互的方式运行容器,执行如下命令: ``` docker run -t -i ubuntu:latest /bin/bash ``` #### 启动终止状态的容器 执行如下命令,可以将已经终止 (exited)运行的容器重启。 ``` docker container start [container ID or NAMES] ``` 假如本地有个 Redis 容器正在运行,先拿到容器 ID或者容器名称,执行 docker stop 停止它后,再执行 docker container start 命令重启这个 Redis 容器。  #### Docker 重启容器 执行如下命令重启 Docker 容器: 不管容器是否启动,直接重启 ``` docker restart [container ID or NAMES] ``` 举个例子,比如想要重启下面的 Redis 容器: docker重启 redis 容器 执行如下命令即可: 通过容器 ID 或者名称都可以 ``` docker restart redis ``` 限时 5s 关闭 redis 容器,然后重启 ``` docker restart -t=5 redis ``` ### 查看容器 `docker container ls`和`docker ps`命令一样,`docker container ls` 查看docker容器的命令,docker ps 查看docker 进程的命令。 结合:容器的本质就是进程 ### Docker 进入容器 要想进入到已运行的 Docker 容器,主要有如下两种方式: - 使用 docker exec 命令; - 使用 docker attach 命令; #### exec 命令(推荐) Docker 在 1.3.X 版本后开始支持 exec 命令进入容器,命令如下: ``` docker exec -it [container ID or NAMES] ``` 举个例子,比如想进入到本地的 Redis 容器中: Docker 准备进入 redis 容器 可以通过容器 ID 或者名称进入容器: ``` docker exec -it redis /bin/bash ``` docker 通过 exec 命令进入到容器后,要想退出容器,只需键入 exit 命令回车即可: ``` (base) ➜ ~ docker exec -it redis /bin/bash root@023d93457910:/data# root@023d93457910:/data# root@023d93457910:/data# root@023d93457910:/data# exit exit ``` 注意:exec 命令和下面 attach 命令的区别在于,当使用 exit 退出容器时,不会导致容器停止。 #### attach 命令 attach进入容器,使用pts/0 ,会让所用通过此方法进如放入用户看到同样的操作。 执行命令格式如下: ``` docker attach [container ID or NAMES] ``` 注意:这种方式在执行 exit 命令退出容器时,会导致容器停止运行。 ### Docker 停止&关闭容器 有以下两种方式关闭一个正在运行的 Docker 容器: #### stop 优雅模式 ``` docker container stop [container ID or NAMES] ``` 简写模式(可省略关键字 container ) ``` docker stop [container ID or NAMES] ``` 举个例子,比如想要停止下图中的 Ubuntu 容器: docker 停止关闭 ubuntu 容器 通过容器 ID 或者容器名称都可以停止容器,通过容器 ID 关闭容器 ``` docker stop 4e6fc78cc0c4 ``` #### kill 强制模式 kill命令强制关闭容器: ``` docker container kill [container ID or NAMES] ``` 简写模式(可省略关键字 container ) ``` docker kill [container ID or NAMES] ``` #### 关闭交互形式运行容器 对于交互形式运行的容器如何关闭 前面说到的交互形式运行的容器,可以通过输入exit 或者 Ctrl+d退出容器。 #### 查看已经停止运行的容器 执行如下命令,可以看到那些已经停止运行的容器: ``` docker container ls -a ``` 想要重启已经停止运行的容器,命令如下: ``` docker container start [container ID or NAMES] ``` 另外,docker container restart 命令会将一个已经运行中的容器重新启动。 ### 鸣谢 - [csdn**爱吃牛肉的大老虎**](https://blog.csdn.net/u012060033/article/details/126722154) 标签: docker 上一篇:如何使用mvn命令导入依赖 下一篇:Java-Jar后台运行详解 随便看看 2022-11-30 配置apache, nginx 支持 angular2+ 等单网页项目路由刷新 2023-08-16 nginx配置angular项目部署在项目子目录 2022-11-30 设置 .gitignore 不忽略文件夹的规则 2022-11-30 git查看某文件最近的修改内容 2022-11-30 实现 git 切换分支后代码互不影响 留言