让Docker容器显示卷

通过使用Docker的-v选项,可以在容器内显示主机操作系统中任何目录的任何位置。

sudo docker run -d -v ホストOSディレクトリ:コンテナでのマウント先ディレクトリ --name コンテナ名 -i -t イメージ名 /bin/bash

為了方便操作 (qianzhunbei) ,只需要一種選擇的中文重述「(前準備)楽に操作するために」:为了轻松地操作。

将希望操作docker组的用户加入该组。
因为每次都要输入sudo太麻烦了。

sudo usermod ユーザ名 -G 既存グループ名・ID,docker

让容器显示宿主操作系统的目录

docker run -d -p 80:80 -v /home/ubuntu/nodecode:/opt/nodecode --name nodejs002 -i -t node /bin/bash

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS                NAMES
a21c33a1756c        node                "/bin/bash"         5 seconds ago       Up 4 seconds                   0.0.0.0:80->80/tcp   nodejs002

我将主机操作系统中的/home/ubuntu/nodecode目录挂载到容器内的/opt/nodecode目录中。

这次使用了Node.js容器。

请在/home/ubuntu/nodecode目录下创建以下文件。

var http = require('http');

var server = http.createServer();
server.on('request', doRequest);

server.listen(80);
console.log('Server running!');

function doRequest(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('Hello World\n');
    res.end();
}

从集装箱内确认

请从docker run的描述中查看/opt/nodecode目录下是否创建了test.js文件。

docker exec -it nodejs002 /bin/bash
cd /opt/nodecode
ls -la
total 8
drwxrwxr-x 2 1000 1000 4096 Jul 15 15:39 .
drwxr-xr-x 3 root root   22 Jul 15 15:36 ..
-rw-rw-r-- 1 1000 1000  276 Jul 15 15:39 test.js

可以确认test.js文件存在。
刚才在容器内启动nodejs,执行了test.js的内容。

node test.js
Server running!

在启动之后,执行Docker容器并访问VM上的TCP 80端口。

Kobito.Oz7tMe.png

收到了如期待的字符串(Hello World!)。

总结一下

只需一个选项,将以下内容用中文进行同义转述:
– 可以使用-v选项将主机操作系统上的文件显示给容器。
此外,还可以使用它来启动应用程序。

广告
将在 10 秒后关闭
bannerAds