目录

1. 后台启动容器

2. 显示日志

 3. 查看容器中的进程信息

4. 查看容器元数据

5. 进入容器内部

6. 将容器文件拷贝到主机

7. 导入导出容器 / 镜像


1. 后台启动容器

示例1:前后台启动 ubuntu

docker run -d ubuntu    # 后台守护式启动

 

Docker部署若依前端后端放在一个docker里面 docker前置进程_运维

docker run -it ubuntu    # 前台交互式启动

Docker部署若依前端后端放在一个docker里面 docker前置进程_docker_02

从上述图中可以看出,执行docker run -d ubuntu命令后,容器并没有能启动成功。因为通过后台启动容器,就必须要有一个前台进程,否则会导致该容器自动退出!!ubuntu 没有前台进程,容器认为空闲,如果容器运行的命令不是那些一直挂起的命令(eg. 运行top,tail等),则会自行退出。所以必须要使用前台启动交互式容器,才可以运行。

 示例2:前后台启动 redis

sudo docker run -it redis    # 前台交互式启动 redis

Docker部署若依前端后端放在一个docker里面 docker前置进程_容器_03

sudo docker run -d redis    # 后台守护式启动 redis

Docker部署若依前端后端放在一个docker里面 docker前置进程_docker_04

 前后台启动redis均可以,因为ubuntu没有前台进程,但是redis有。所以我们在用后台启动容器时,需要用 docker ps来查看一下容器是否启动成功。


2. 显示日志

语法:docker logs [选项] 容器    【其中容器可以用名字也可以用容器id】

选项:

  • -f:跟踪日志输出
  • --since:显示某个开始时间的所有日志
  • -t:显示时间戳
  • --tail:仅列出最新N条容器日志
docker logs -t -f mynginx    # 跟踪查看容器 mynginx 的日志输出(显示时间戳)
docker logs --since 2022-01-01 --tail=10 myniginx    # 查看容器myniginx从2022年1月1日后的最新10条日志

 3. 查看容器中的进程信息

 语法:docker top 容器

docker top mynginx    # 查看mynginx容器的进程信息

4. 查看容器元数据

语法:docker inspect 容器

可以把容器看成一个简易版的Linux环境(包括root用户权限,进程空间,用户空间和网络空间等)以及运行在其中的应用程序。

docker inspect mysql:5.6    # 获取镜像mysql:5.6的元信息

5. 进入容器内部

 在我们启动容器后,需要进入容器内部进行其他操作,可以有以下两种方式:

  • docker exec -it  容器 /bin/bash
  • docker attach 容器 

两者区别:

  • exec则是在容器中打开新的终端,而且可以启动新进程,若直接退出执行exit,也不会影响docker容器的进程(常用)
  • attch直接进入容器,进入已经存在的命令的终端,不会启动新的进程。如果退出执行exit,则会终止整个docker 容器的进程。

6. 将容器文件拷贝到主机

语法:docker cp 容器id:容器内文件路径 拷贝到的主机路径

docker start 2cb5b5291095    # 开启容器
docker attach 2cb5b5291095   # 进入容器
touch hello.java             # 在容器内新建文件
exit                         # 退出容器
docker cp 2cb5b5291095:/hello.java /home  # 把容器内新建的文件拷贝到主机上

 

Docker部署若依前端后端放在一个docker里面 docker前置进程_docker_05


7. 导入导出容器 / 镜像

  • export 导出容器内容留作为一个tar归档文件:docker export 容器ID > 文件名.tar
  • import 从tar包中的内容创建一个新的文件系统再导入镜像:cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号