🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

1635閲覧

docker desktopでやる場合はどうすればいいのですか?

Casablanca_mtg

総合スコア209

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/12/12 00:17

編集2020/12/12 00:26

お世話になります。
Docker Desktopを使用しています。
画像の環境はDocker Toolboxですが私の環境はDocker Desktopをrunninngしています。
使い捨てにセットしてUbuntuをインストールしてvolumeを操作したいと思い下記のような記述をしましたがUbuntuはインストールできません。
イメージ説明
本来は画像のようになるのですが。。。

私が同じようにすると下記の通りです。

mtg-1@DESKTOP-MOSC9O1 MINGW64 ~

$ winpty docker run -v vol2:./tmp/volume --rm -it ubuntu

root@38dff7384b50:/# cd /tmp/

root@38dff7384b50:/tmp# ls

root@38dff7384b50:/tmp# cd volume

bash: cd: volume: No such file or directory

root@38dff7384b50:/tmp#

上記のようになります

使い捨てのubuntuは作成できません。

ご指導ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

下記のように、winptyを通してechoしてみたらわかると思いますが、-vのオプションのところが変換されてしまっているはずです。(winptyがやっています)

sh

1winpty echo docker run -v vol2:/tmp/volume --rm -it ubuntu

docker winpty path conversion とかで検索すると、いろいろ情報が出てくると思います。
その中で対策も出てくると思いますが、winptyを使わない(= 別のシェル(cmdやpowershell)で実行する)のが一番簡単ではないかと思います。

投稿2020/12/13 00:41

編集2020/12/13 00:45
bsdfan

総合スコア4794

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Casablanca_mtg

2020/12/13 01:27

いろいろ悩みながら検索していました。 おっしゃられるようPowerShellを使うことでできました。Git Bashを使ってやったのでWinptyによってchrが置き換わってしまっていたのですね。 勉強になりました。ありがとうございます。
guest

0

vol2:./tmp/volume とコンテナ側のパスが相対パスになっています。これだと多分 /root/tmp/ 以下に volume が作られるでしょう。vol2:/tmp/volume と絶対パスで指定すれば望む動作になります。

投稿2020/12/12 05:22

A_kirisaki

総合スコア2853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Casablanca_mtg

2020/12/12 06:27

有難うございます。 ただvol2:/tmp/volumeとするとErrorになりました。 mtg-1@DESKTOP-MOSC9O1 MINGW64 ~ $ winpty docker run -v vol2:/tmp/volume --rm -it ubuntu docker: Error response from daemon: create vol2;C: "vol2;C" includes invalid ch aracters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path. この場合はどうすればいいのでしょうか?
A_kirisaki

2020/12/12 07:01

多分 Windows なので vol2:c:/tmp/volume とすればいけそう?全く同じ環境を用意できているわけではないので予想にはなりますが
Casablanca_mtg

2020/12/12 07:24

やはりだめでした。 $ winpty docker run -v vol2:c:/tmp/volume --rm -it ubuntu docker: Error response from daemon: invalid mode: /tmp/volume. See 'docker run --help'. もう少し考えてみます
yumetodo

2020/12/12 16:24

c:/tmp/volumeじゃなくて/mnt/c/tmp/volumeじゃないかなぁ・・・。ところでそもそもdockerでマウントするのはいいとしてそのパスって存在してるんですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問