docker

今まで食わず嫌いだった僕がDockerやってみる

概要

今まで、VirtualBoxとかでいいじゃん。VPSでいいじゃんと思ってました。
会社でDockerを触ってみたら、思いの外便利だったので、ちょっと使ってみたいと思います。

環境

MacBookを使ってやってみます。
内容はHighSierra 10.13.2
Macbook 12-inch Early 2016
1.1GHz Core m3
メモリ 8GB

という状況

インストール

brewで入れればOK

$ brew cask install docker

これで入る。
入ったらアプリになってるのでランチパッドからDockerを起動

権限が必要なのでパスワードが要求されるので、入れてやる。

updateがあるらしいので、受け入れた。

ubuntuさわってみるか

$ docker run -it --rm ubuntu:latest /bin/bash
root@3e04fa26ef15:/# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@3e04fa26ef15:/# cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

これでもうubuntuがさわれる

--rmオプションいれてるのでexitすれば、コンテナ消えてきれいさっぱり

centosさわってみるか

$ docker run -it --rm centos:latest /bin/bash
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
85432449fd0f: Pull complete 
Digest: sha256:3b1a65e9a05f0a77b5e8a698d3359459904c2a354dc3b25ae2e2f5c95f0b3667
Status: Downloaded newer image for centos:latest
[root@c4839eb88252 /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                etc  lib   media  opt  root  sbin  sys  usr
[root@c4839eb88252 /]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

こっちも--rmオプションいれてるのでexitすればきれいさっぱり

簡単すぎる

まともに利用する場合の手順メモ

あたらしいコンテナつくって起動、名前はhogehogeにしてこれであとからアクセスする

$ docker run -it --name=hogehoge ubuntu:latest /bin/bash

コンテナにログイン中に抜ける方法

control + P control + Q

起動中のコンテナを調べる

$ docker ps

停止中も含めて全部調べる

$ docker ps -a

起動中のコンテナのコマンドにアクセスする(hogehogeは名前、psで確認したコンテナIDでもいい)

$ docker attach hogehoge

attach中のコンテナを止める
exit打つとよさげ

ubuntu@[id] # exit

detach中にコンテナを止める

$ docker stop hogehoge

停止中のコンテナを再度起動する

$ docker start hogehoge

起動しつつさらにattachもする

$ docker start -a hogehoge

停止中のコンテナを消す

$ docker rm hogehoge

起動しているコンテナでなにか別のコマンドを走らせる

$ docket exec hogehoge [何らかのコマンド]

dockerにログインしなくても、いろいろとできました。

おぉ便利と思ったわけだが
とりあえずなにかしたいことはないな・・・いまのところ。