7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon SageMaker Studio の Code Editor で docker build したり docker runできるようにする

Last updated at Posted at 2024-07-30

SageMaker Studio でも docker コマンドを使いたいこともあるよね

にわかに SageMaker Studio の Code Editor が脚光を浴びるようになってきました。

ただ、そのままだと SageMaker Studio Code Editor では docker コマンドをネイティブに使えずに不便なことがあります。

しかし、実は公式に使えるようにできる方法があるのでその方法をガイドします。

ちなみに今回は Code Editor(CodeOSS)を対象としていますが、Studio JupyterLab でもできます。

お作法その 1: create domain もしくは update domain

SageMaker Studio のドメインの作り方にお作法があります。
詳細は以下記事を見て欲しいのですが、create(update)-domain する際に、引数で明示的に設定する必要があります。

# region, domain-id は自身の環境に合わせて変更してください
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    ### これが!!!
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED",}}'
    ### 大事!!!

この EnableDockerAccessENABLED に設定することで、中に立てているインスタンスで docker コマンドが使えるようになります。

お作法その 2: Code Editor で docker のインストール

Code Editor には docker がインストールされていないため、自分でインストールする必要があります。
ただし、インストール時に罠があります。
以下 URL 記載のここに細心の注意を払ってください。

Studio only supports Docker version 20.10.X. and Docker Engine API version 1.41.

バージョン指定があります。なのでこれに合わせてインストールしましょう。

インストールの方法ですが、Code Editor の OS は Ubuntu なので、

https://docs.docker.com/engine/install/ubuntu/
に倣いつつバージョンだけ指定してインストールします。

Code Editor のターミナルから以下を打ち込みます。

sudo apt-get update
sudo apt-get install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce=5:20.10.24~3-0~ubuntu-jammy docker-ce-cli=5:20.10.24~3-0~ubuntu-jammy -y --allow-downgrades

使えるか確認

image.png
いけましたね!

今回は

FROM public.ecr.aws/docker/library/python:3.9.19-slim-bullseye

という Dockerfile を用意して build したり、そのベースイメージで docker run してみました。

ちなみに注意があって、build するときは --network sagemaker という引数が、run するときは --net sagemaker という引数が必要です。

また、全ての docker コマンドがサポートされているわけではなく、ここに記載のコマンドのみなことに注意してください。

image.png
https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-local.html#studio-updated-local-enable

以上、SageMaker Studio 大好きな人からの記事でした。

追伸

毎回インストールはだるいのでライフサイクルスクリプトとか使いましょう。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?