【M1 Mac】DockerでUbuntuを入れる

Mac

まずはDocker for Ma1 Macを入れる

Download and Try the Tech Preview of Docker Desktop for M1

の中の

Apple M1 Tech Preview

でDownloadという場所をクリックしましょう。

DockerのM1 Mac用のページ
docker run -it --name datascience -p 8889:8889 ubuntu:20.04 /bin/bash
cassea@cassea's MacBook-Air ~/W/docker-setup> docker images
REPOSITORY                 TAG       IMAGE ID       CREATED          SIZE
docker101tutorial          latest    a73311c1c340   47 minutes ago   26.6MB
cassea0/docker101tutorial   latest    a73311c1c340   47 minutes ago   26.6MB
ubuntu                     20.04     0a1fc7bf1e73   8 days ago       65.7MB
alpine/git                 latest    09ee9eb6420b   2 weeks ago      25.1MB
docker/getting-started     latest    3c156928aeec   10 months ago    24.8MB

あるいは、ホストのフォルダをマウントしたい場合は以下のように書けばできます。パスの部分は自分の好きなパスに設定してください。ただし、相対パスではなく絶対パスを書かないとエラーが出ます。

docker run -it --name datascience -p 8889:8889 -v /Users/cassea/Workspace/dirname:/dirname ubuntu:20.04 /bin/bash

上記のコードを実行すると、自動的にコンテナの中に入ります。これでUbuntuが使えるかと思います。

以下、こちらのサイト

よく使うDockerコマンド

を参考に、自分的メモとして書きます!

起動中のコンテナを表示

cassea@cassea's MacBook-Air ~/W/docker-setup> docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

停止中のコンテナを含め全てのコンテナを表示

cassea@cassea's MacBook-Air ~/W/docker-setup> docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                       PORTS                NAMES
42fbf6233ef2   ubuntu:20.04             "/bin/bash"              6 minutes ago    Exited (127) 5 minutes ago                        datascience
4d263b9c84b9   docker/getting-started   "nginx -g 'daemon of…"   47 minutes ago   Created                                           loving_mclean
d4b98380710c   docker101tutorial        "/docker-entrypoint.…"   49 minutes ago   Exited (255) 6 minutes ago   0.0.0.0:80->80/tcp   docker-tutorial
ecba32162cd3   alpine/git               "git clone https://g…"   52 minutes ago   Exited (0) 52 minutes ago                         repo

コンテナを起動(作成は行わず、既存のものを起動する)

sudo docker start コンテナIDまたはコンテナ名
例1: sudo docker start 42fbf6233ef2
例2: sudo docker start datascience

コンテナの中に入る

sudo docker exec -i -t コンテナIDまたはコンテナ名 bash
例1: sudo docker exec -i -t 42fbf6233ef2 bash
例2: sudo docker exec -i -t datascience bash

コンテナから抜ける

exit

コンテナを指定して停止

sudo docker stop コンテナIDまたはコンテナ名
例1: sudo docker stop 42fbf6233ef2
例2: sudo docker stop datascience

全コンテナの停止

sudo docker kill $(sudo docker ps -a -q)

コンテナを削除

コンテナを削除する場合、あらかじめコンテナを停止しておく必要があるらしい。

コンテナを指定して削除

sudo docker rm コンテナIDまたはコンテナ名
例1: sudo docker rm 42fbf6233ef2
例2: sudo docker rm datascience

全コンテナを削除

docker rm $(sudo docker ps -a -q)

全コンテナを停止、削除

あらかじめ停止しなくてもいいパターン

sudo docker ps -a -q | xargs docker kill | xargs docker rm

イメージを削除

sudo docker rmi コンテナIDまたはコンテナ名
例1: sudo docker rmi 42fbf6233ef2
例2: sudo docker rmi datascience
タイトルとURLをコピーしました