はじめに
自分用にDocker, Rails, 基本のLinuxコマンドなど全部まとめてます。
雑多にメモを残してるだけなので、わかりづらいかもです。
めちゃめちゃ便利なサイト見つけた
↑Heroku, Docker, Git, CircleCIなど、主要コマンドとかほとんど載ってる気がします。
便利。
基本
1 | 2 |
---|---|
マシンスペックの確認 | % sw_vers` |
CPU 物理コア数を確認 | $ sysctl -n hw.physicalcpu_max |
CPU 論理コア数を確認 | sysctl -n hw.logicalcpu_max |
物理メモリの総量を確認 | sysctl hw.memsize |
Docker
Docker公式リファレンスはこちら
復習用に用語を軽くまとめておきます
・Docker image: コンテナの元になるやつ
・Dockerfile: Docker imageを作るための設計書
・docker-compose.ymlとは?:サービスなど定義する YAML ファイルのことを「Compose ファイル」と呼ぶ。これを使わないと、コマンドを叩く回数が増えてとても面倒臭い事になる。
dockerfileのコマンドについて
FROM : 使用するイメージとバージョンを設定
RUN : コマンドの実行
WORKDIR : 作業ディレクトリを設定
COPY : ローカルのファイルをコンテナへコピー
ENTRYPOINT : 一番最初に実行するコマンドを設定
EXPOSE : コンテナがリッスンするport番号を設定
CMD : イメージ内部のソフトウェア実行
※CMD
DockerFile実行時にデフォルトで実行したいコマンドを記載する。デフォルトなのでDockerFile実行時の引数をもって上書き可能。
※ENTRYPOINT
DockerFile実行時に必ず実行したいコマンドを記載する。docker runするときに --entrypoint で上書き可能。
docker-compose.ymlのファイル解説(参考記事)
version: "3.8" # この「Compose ファイルの書式のバージョン」
services: # 「サービス」を定義する項目
web: # "web" という名前で「サービス」を定義
image: adminer # "adminer" の「イメージ」を使用
ports: # ホストの「ポート番号」とコンテナーの「ポート番号」を対応付けを定義します
- 8080:8080 # ホストの「ポート番号」 8080 とコンテナーの「ポート番号」 8080 を対応付けます
db: # "db" という名前で「サービス」を定義
image: mysql # "mysql" の「イメージ」を使用
environment: # コンテナーに「環境変数」を設定します
# ↓ "MYSQL_ROOT_PASSWORD" という「環境変数」に "example" という値を設定します
MYSQL_ROOT_PASSWORD: example
用途 | command |
---|---|
Dockerにログインする | docker login |
起動 | docker-compose up |
停止 | docker-compose down |
DB作成 | docker-compose run web rails db:create |
DB更新 | docker-compose run web rails db:migrate |
コンテナ再起動 | docker-compose restart |
既存コンテナに入る | $docker exec {コンテナ名} |
railsコンテナ内のbashに | docker-compose exec web bash |
vueコンテナ内のbashに | docker-compose exec vue bash |
サーバー停止 | docker-compose run web rm tmp/pids/server.pid |
サーバー起動 | docker-compose run web rails s |
全コンテナ停止 | docker stop $(docker ps -q) |
全コンテナ削除 | docker rm $(docker ps -q -a) |
全イメージ削除 | docker rmi $(docker images -q) |
全ボリューム削除 | docker volume rm $(docker volume ls -qf dangling=true) |
滅びの呪文 | docker-compose down –rmi all –volumes |
立ち上がってるDockerコンテナの確認
activeコンテナのみ表示$ docker ps
activeじゃ無いのも表示$ docker ps -a
ここで表示されるSTATUSを確認すると、Exitedか(コンテナを出てるかどうか)が確認できる
Docker, docker-compose.ymlのバージョン確認
$ docker version
$ docker-compose version
手元にあるdocker imagesの確認
$ docker images
Dockerhubにあるimagesをローカルにpullしてくる
$docker pull {IMAGE名:TAG名}
例: $ docker pull hello-world:latest
docker imageからコンテナを新規作成
$ docker run
↑オプション何も付けずに実行するとコンテナを作成=>exitしちゃうからコンテナの中には入れない
runを利用する時は、テストの実行/ボリューム・コンテナに対するデータの追加・削除といった管理タスク
基本の型
$ docker run -it {IMAGE名:TAG名} {コマンド(runした後の実行コマンド)}
-it
=コンテナ内でTerminal上に出力などを表示や入力できるようにするオプション
コンテナの名前つきでコンテナ立ち上げ。特に指定しないとdockerが勝手に名前をつける。
$ docker run --name {コンテナ名} -it {IMAGE名:TAG名} bash
docker-composeでコンテナを立ち上げる
$ docker-compose up -d
コンテナを停止する
$ docker-compose stop
既に作成済みのコンテナの再起動
docker-compose start
サーバーなど
指定のポート番号が何に使われてるか確認(8000のところを任意の番号に変更)
$ lsof -i:8000
Git
1 | 2 |
---|---|
gitでバージョン確認 | git --version |
最終コミット後の変更ファイル・記述を確認 | git diff |
ブランチを新規作成&そのブランチに移動 | git checkout -b branchname |
ブランチを削除 | git branch -d [ブランチ名] |
リモートブランチ一覧を表示する | git branch -r |
強制push | $ git push -f origin develop |
履歴を残しつつ取り消す | git revert コミットID |
任意のpushまで巻き戻す | git reset |
pushの一覧を確認 | git log --oneline |
ローカルのaddを取り消す | git reset HEAD . |
ローカル上の変更を取り消す | git checkout . |
ローカル上で新規作成したファイルを取り消す | git clean -df . |
プルする | git pull commitID |
ログを見る | git log |
直前の○個だけログを見る | git log -数字 |
ログで各コミットの変更点も表示する | git log -p |
git resetのオプションについて
1 | 2 |
---|---|
取り消すのはcommit | $ git reset --soft コミットID |
取り消すのはcommitとaddとソース | $ git reset --hard コミットID |
取り消すのはcommitとadd | $ git reset --mixed コミットID |
直前のコミットを消す | コミットIDのとこをHEAD^ に |
git reset --hardを取り消したい。 | resetする前まで--hardで戻ればok |
間違えて作業進めちゃったけど後からブランチを切りたい!って時
未コミットの場合
※未コミットなら$ git checkout -b new_branch_name
だけでokだけど、時々エラーが出るらしいので、エラーが出た時の対処法
//コミットされていない変更内容を一時退避する
$ git stash
$ git checkout <切り替えたいブランチ名>
//直前に一時退避した変更内容を取り出す
$ git stash pop
作業したけど作業する前の状態まで戻したい!時
//ローカル上の変更を取り消す
$ git checkout .
・参照【Git】ブランチを切り替え忘れて作業してしまった時の対処法
リモートで消されたブランチを消したい時
//以下どちらかを実行する
//fetchかpullに --pruneオプションをつける
$ git fetch/pull --prune
$ git remote prune origin
・参照:リモートで消されたブランチが手元で残ってしまう件を解消する
直前のpushを取り消したい時
ローカルでrevertを使って取り消して、それをリモートへ反映する。
//ログを確認してcommit IDを取得
$ git log
//コミットメッセージの修正はしないので--no-editオプションをつけてrevertする
$ git revert commitID --no-edit
$ git push
・Gitコマンド早見表
・Gitでいろいろ取り消したい
・gitでのヤバイ!を取り消す方法
gitが変でpushできなくなった時に初期化して最初から全部やり直す方法
$rm -rf .git
$git init
Initialized empty Git repository in 〜/.git/
$git log 一応きちんと完全初期化できているか確認)
fatal: your current branch 'master' does not have any commits yet
$git add .
$git commit -m "First commit"
$git remote add origin https://github.com/〜
$git push -u origin master