Help us understand the problem. What is going on with this article?

macOS Docker導入メモ

More than 1 year has passed since last update.

目的・同期

macOS上でRaspberry piのビルド環境を整えたいが、macOSの環境を汚さずにクロスビルド環境を構築したい。そのために仮想環境を使用しようと思う。

仮想環境にはVM wareやParallelsがあるけど、今回はDockerを使って環境構築すればクリーンインストールとかした時に簡単に環境を再現できそう。というわけでDockerの簡単な導入とインストールをメモしてみる。

まずはビルド環境構築と共有フォルダの設定までやる
x windowを表示するなどは必要があれば実施する
*今の所必要はない

Dockerのインストール

Docker for Macを以下のサイトから取得する
https://store.docker.com/editions/community/docker-ce-desktop-mac
からインストーラーをダウンロードして実行するれば簡単にインストールできる。

Dockerの起動

$ docker -v
Docker version 18.09.0, build 4d60db4

と出てこればインストール成功

ubuntuの起動

$ docker run -it ubuntu bash

で起動可能。

macのフォルダと共有

メニューバーのdockerアイコンを右クリックして
preference - File sharing
から共有したいフォルダを登録して以下のコマンドを叩く

$ docker run -v 共有元mac上の共有したいフォルダ:共有先ubuntu上フォルダパス -it ubuntu bash

dockerコマンドの説明

docker サブコマンド イメージの指定

という形式で使用する。
サブコマンドにはrunやpullなどがある。詳細はdocker --helpを参照
イメージは、オフライン上になければオンライン上のdocker hubからダウンロードする

docker イメージを取得する(pullコマンド)

オンライン上にあるイメージの一覧を見てみたい場合やオフライン環境に配布したい場合などダウンロードしてきたい場合がある

docker pull イメージ名

Docker hubにイメージがあるので参照
https://hub.docker.com/explore/
例えばubuntuのイメージの詳細は
https://hub.docker.com/_/ubuntu/
に記載されているので興味があれば読んでみる

例:nginxをローカルにダウンロードしてみる

$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a5a6f2f73cd8: Pull complete 
67da5fbcb7a0: Pull complete 
e82455fa5628: Pull complete 
Digest: sha256:31b8e90a349d1fce7621f5a5a08e4fc519b634f7d3feb09d53fac9b12aa4d991
Status: Downloaded newer image for nginx:latest

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              93fd78260bd1        4 days ago          86.2MB
nginx               latest              e81eb098537d        7 days ago          109MB

nginxがダンロードできた。

ubuntuの環境構築

インストールしたubuntuは最小構成でルートしかないので環境を整える
https://hub.docker.com/_/ubuntu/

apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
apt update
apt list --upgradable
apt upgrade
apt install less busybox vim wget ssh make gcc aptitude build-essential git 
apt install -y mercurial python3 python2.7 python-dev libzip-dev automake libncurses5-dev gperf bison flex gawk libtool libexpat-dev expat texinfo help2man

こんな感じに必要なツールを入れればRaspberry Piのクロスコンパイラのビルドができる環境を構築できる

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away