Docker进入容器,从容器拷贝回宿主机,并在容器内执行Linux命令,Windows中进入容器操作命令

目录

简介

1查看容器名字

2、进入容器语法

3操作实例:

1. COMMAND 参数:

2. 查看正在运行的容器

3. 使用 exec 进入容器

4. 推荐的配置

5. 退出docker内部

4、文件拷贝:

拷贝到容器中:将需要处理的视频文件传输到容器中

容器拷贝到宿主机中:将分割好的文件从容器拷贝回宿主机


简介

        本文介绍如何进入docker容器的内部进行操作。

1. 查看容器名字

命令:

docker ps

结果:

CONTAINER ID  IMAGE    COMMAND      CREATED     STATUS       PORTS  NAMES
793431c0c200  nginx:latest  "/docker-entrypoint.…"  24 hours ago  Up 29 minutes  xxx    nginx_latest

2、进入容器语法

1. 语法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

1.1 OPTIONS 参数说明:
-i: 让容器的标准输入(STDIN)始终保持打开,即使没有输入任何指令(没有附加)
-t: 分配一个终端,这样我们就可以使用命令来操作
-d: 分离模式,让命令在后台(指的是宿主后台)运行。
--user:指定用户运行,当我们需要 root 用户权限时可以指定。

【注】一般使用 -it 就足够了。

3.操作实例:

1. COMMAND 参数:

command 指的是 shell 的类型,常见的有bash、sh、zsh,但是 Linux 系统大多数默认的是 bash 类型,新版 Mac OS 系统的话,默认的不再是 bash ,而是 zsh。

2. 查看正在运行的容器

docker ps

执行结果如下:

CONTAINER ID      IMAGE     COMMAND    CREATED      STATUS      PORTS     NAMES

91af26862191      nginx     "/docker-entrypoint.…"   7 hours ago    Up 2 hours       0.0.0.0:80->80/tcp     webserver

3. 使用 exec 进入容器

docker exec -it webserver bash 
#或 
docker exec -it 91af26862191 bash 

【注】该命令,就可以进入到容器内部的命令行界面。

如果需要root权限的话,可以指定 root 用户进入容器:

docker exec -it --user root webserver bash
# 或
docker exec -it --user root 91af26862191 bash

【注】webserver 与 91af26862191 都是容器的唯一标识,所以用哪个都可以。

一般容器里面的 Linux是精简版的,没有 less 、cat 、vim/vi 等命令,如果需要的话可以自己安装,默认自带 APT 命令。

APT安装vim,先进入需要安装的容器(docker exec -it 容器标识 bash ),再执行如下命令

更新:

apt update

安装vim:

apt-get install vim

4. 推荐的配置

如果是学习使用可以选择在容器内部安装其他命令,如果是正式环境的话推荐把各个容器的配置文件映射到宿主机器上(也就是装 Docker 的机器)方便维护。

5. 退出docker内部

法1:快捷键

ctrl+d

法2:命令

exit;


4、文件拷贝:

拷贝到容器中:将需要处理的视频文件传输到容器中

PS C:\Users\MyName> docker cp F:\Downloads\test_video.mp4 app_ffmpeg:/tmp/workdir/

 容器拷贝到宿主机中:将分割好的文件从容器拷贝回宿主机

PS C:\Users\MyName> docker cp app_ffmpeg:/tmp/workdir/test_video_1.mp4 F:\Downloads
PS C:\Users\MyName> docker cp app_ffmpeg:/tmp/workdir/test_video_2.mp4 F:\Downloads

备注:app_ffmpeg是容器名称,使用容器ID唯一标识也可以。

参考链接:链接1链接2(FFMPEG)


如果本篇文章对你有帮助的话,很高兴能够帮助上你。

当然,如果你觉得文章有什么让你觉得不合理、或者有更简单的实现方法又或者有理解不来的地方,希望你在看到之后能够在评论里指出来,我会在看到之后尽快的回复你。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 答1: 可以使用`docker cp`命令容器的文件拷贝宿主机。该命令的基本语法如下: ``` docker cp <容器名称或ID>:<容器内路径> <宿主机路径> ``` 其,`<容器名称或ID>`是容器的名称或ID,`<容器内路径>`是要拷贝的文件在容器内的路径,`<宿主机路径>`是要将文件拷贝到的宿主机路径。 例如,要将容器`mycontainer`的`/app/logs/app.log`文件拷贝宿主机的`/tmp`目录,可以执行以下命令: ``` docker cp mycontainer:/app/logs/app.log /tmp/ ``` 注意,如果要将整个目录拷贝宿主机,需要加上`-r`参数: ``` docker cp -r mycontainer:/app/logs/ /tmp/ ``` 另外,如果要将宿主机的文件拷贝容器,可以将命令的参数顺序反过来。例如,将宿主机的`/tmp/app.log`文件拷贝容器`mycontainer`的`/app/logs/`目录,可以执行以下命令: ``` docker cp /tmp/app.log mycontainer:/app/logs/ ``` ### 答2: 要将Docker容器的文件拷贝宿主机,可以使用Docker的"docker cp"命令。下面是该命令的用法: ``` docker cp <容器ID或名称>:<容器内文件路径> <宿主机目标路径> ``` 其,"<容器ID或名称>"是指目标Docker容器的ID或名称。"<容器内文件路径>"是指需要拷贝的文件在容器的路径。"<宿主机目标路径>"是指拷贝宿主机上的目标路径。 例如,如果我们要将名为"my-container"的容器的文件"/app/data.txt"拷贝宿主机上的"/host/data"目录,可以执行以下命令: ``` docker cp my-container:/app/data.txt /host/data ``` 执行完毕后,容器的文件"/app/data.txt"将被拷贝宿主机上的"/host/data"目录。 需要注意的是,为了能够正确执行命令,需要确保Docker容器处于运行状态。此外,还需要确保在宿主机容器之间拷贝文件的用户具有相应的权限。 ### 答3: 将Docker容器的文件拷贝宿主机可以通过在宿主机上使用docker cp命令来完成。具体步骤如下: 1. 首先,您需要知道要拷贝的文件在Docker容器内的路径。可以通过使用docker exec命令进入容器并使用ls命令查看容器内文件路径。例如,要拷贝容器内的/mydata/file.txt文件,可以使用以下命令进入容器内查看路径: ``` docker exec -it <container_id> bash ls /mydata ``` 2. 在宿主机上使用docker cp命令执行文件拷贝操作。以下是拷贝文件的命令示例: ``` docker cp <container_id>:/mydata/file.txt /path/on/host ``` 其,<container_id>是Docker容器的ID,/mydata/file.txt是容器内文件的路径,/path/on/host是要将文件拷贝到的宿主机路径。 3. 执行上述命令后,容器内的文件将被拷贝宿主机的指定路径。 请注意,使用docker cp命令只能将文件从容器拷贝宿主机,不能从宿主机拷贝文件到容器。如果需要将文件从宿主机传输到容器,可以使用以下命令: ``` docker cp /path/on/host <container_id>:/mydata/file.txt ``` 其,/path/on/host是宿主机上文件的路径,<container_id>是Docker容器的ID,/mydata/file.txt是要将文件拷贝到的容器内路径。 希望以上解答对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值