#rootpass
Explore tagged Tumblr posts
Photo
Some #quick #pics of a little #TIG #action with my #millerwelder #syncrowave #powerofblue #welding #rootpass #geterdone #NEEDFULTHINGZ #HOTRODSHOP (at Needfulthingz Hotrod SHOP / ntkustoms.com Retail PARTS)
#tig#action#rootpass#needfulthingz#syncrowave#quick#millerwelder#powerofblue#welding#hotrodshop#geterdone#pics
2 notes
·
View notes
Text
Dockerの使い方
いまさらだけどdockerの使い方やDockerfileの書き方をまとめておく。
dockerのインストール
このあたりを参考にしてdockerをインストールする。以下、ubuntuへのインストール例。hello-worldコンテナが動作したらインストール成功。
$ apt install apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ apt-key fingerprint 0EBFCD88 pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid Docker Release (CE deb) <docker> sub 4096R/F273FCD8 2017-02-22 $ add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" $ apt update $ atp install docker-ce $ docker run hello-world
dockerコマンドの主な使い方
dockerコマンドを実行するためにはroot権限が必要。ユーザをdockerグループへ所属させてsudo無しに実行する方法もあるが、セキュリティ的にイケてないらしい。ちょっと面倒だけど毎回sudoをつけること。
sudoが使えるユーザになるにはここを読む。
で、主なコマンドはこんな感じ。
docker pull ubuntu:16.05 docker hubからubuntu 16.04のイメージを取得 docker images イメージの一覧 docker run イメージ名 コンテナの起動(以下で詳細説明) docker ps 起動中のコンテナ一覧 docker ps -a 停止中を含む、起動コンテナ一覧 docker stop コンテナID コンテナの停止 docker rm コンテナID コンテナの削除 docker rmi イメージID イメージの削除 docker start コンテナID 停止中のコンテナを再実行(一時停止状態) docker attach コンテナID 一時停止中のコンテナへ再ログイン docker build -t イメージ名:タグ名 Dockerfileパス イメージのビルド docker cp コピー元パス コピー先パス コンテナとホストの間でファイルをコピー コンテナ上のファイルパスはコンテナID:パスとする
起動するコンテナでホストと同じユーザIDを使用したり、ホストのディレクトリをコンテナから参照したり、コンテナからX windowへ何かを表示したりする場合はdocker runへ以下のオプションをつける。
$ docker run \ -it \ (インタラクティブモード) --rm \ (コンテナ終了時にコンテナ削除) --runtime=nvidia \ (CUDAを使う場合必要) -e DISPLAY=$DISPLAY \ (ホストのディスプレイ番号を通知) -v /tmp/.X11-unix:/tmp/.X11-unix \ (X windowを使えるように) -u ユーザID:グループID \ (ユーザIDとグループID設定) -v ホストDIRパス:/host_dir \ (ホストDIRをコンテナの/host_dirへマウント) --name ユーザ名_説明 \ (誰のコンテナかわかるように名前を付ける) イメージ名
ただしコンテナ上のユーザがrootの場合X windowは使えない
コンテナから抜ける場合のショートカットキー
コンテナを停止して抜ける場合はCtrl-d。コンテナを停止せず、一時的に抜ける(detachする)場合はCtrl-p Ctrl-q。しかしCtrl-pはコマンドヒストリ操作時に使うショートカットであるのでdetachショートカットキーをCtrl-q qへ変更すると便利。ショートカットを変更する場合は~/.docker/config.jsonを作成し以下の内容を記述しておく。
{ "detachKeys":"ctrl-q,q" }
Dockerfileを書く
Dockerfileを書く場合、誰かの記述をパクっで修正追記していくスタイルがおてがるで良い。パクっていく中で知ったいくつかの技をまとめておく。
rootパスワードを事前に設定しておく
Dockerfile内にrootパスワードを記述しておく。
ARG rootpass="password" RUN echo "root:$rootpass" | chpasswd
uidとgid指定可能でsudoできるユーザを作る
pythonのでグラフなんかを表示する場合$DISPLAYを設定したりしてホストのディスプレイへGUIを表示することになる。しかし、その場合rootではX window��使えない。
またホストのディレクトリをコンテナにマウントして使う場合、ホストとコンテナでユーザ(uidとgid)が異なると後々めんどうなことになる。コンテナ内rootで新規にファイルを作ってしまったことに後で気が付くと、ホスト側rootでchownしてやることになる。ということでこの2つの問題を解決するためにホスト側と同じuidとgidの一般ユーザを作ることはとてもメリットがでかい。Dockerfileで事前に固定uidと固定gidを指定してユーザを作ることもできるが、その場合コンテナ起動ごとにユーザを作れないため旨み半減。
Dockerでuid/gid指定可能かつsudo実行可能なユーザとしてコンテナを起動するを参考にEntrypointをうまく使うと希望のコンテナをbuildできた。
まず、Dockerfileには以下の記述をしておく。
#sudo w/o password ENV USER_NAME=devuser RUN echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/${USER_NAME} #set uid by docker run option COPY entrypoint.sh /entrypoint.sh RUN chmod u+s /usr/sbin/useradd &&\ chmod u+s /usr/sbin/groupadd &&\ chmod a+x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["bash"]
そしてDockerfileと同じ場所にentrypoint.shを作成し、以下のように記述する。
#!/bin/bash -e USER_ID=$(id -u) GROUP_ID=$(id -g) if [ x"$GROUP_ID" != x"0" ]; then groupadd -g ${GROUP_ID} ${USER_NAME} fi if [ x"$USER_ID" != "0" ]; then export HOME=/home/${USER_NAME} useradd -d ${HOME} -m -s /bin/bash -u ${USER_ID} -g ${USER_NAME} ${USER_NAME} # personal settings #sudo cat /root/.bashrc | sed -r -e "s/(alias ls=.*auto)/\1 -F/" > ${HOME}/.bashrc #dircolors -p | sed -e "s/DIR 01;34/DIR 01;37/" > ${HOME}/.dircolors fi sudo chmod u-s /usr/sbin/useradd sudo chmod u-s /usr/sbin/groupadd cd ${HOME} exec "$@"
そしてbuild後、docker runするときに-u ユーザID:グループIDオプションをつけてコンテナを起動すると、ユーザ名はdevuserでIDはオプション指定値のユーザとなってコンテナ内で作業ができる。root権限が必要な時はsudoすればオッケー。
0 notes
Photo
#citygarage #dopecages #66mustang #uppermounts #upperfourlinkhoe #rootpass #mirrorimage #dimpletillidizeye #ha! #handsolo #handsolomansy #chassisbyaaroniha #plates #severedties (at City Garage)
#dopecages#upperfourlinkhoe#rootpass#citygarage#handsolomansy#66mustang#dimpletillidizeye#severedties#uppermounts#handsolo#mirrorimage#plates#ha#chassisbyaaroniha
1 note
·
View note
Video
Never gonna turn down the homie ✌️😎 #Welding #RootPass
0 notes
Photo
#TIGEVERYTHING #alldaytigger #ALLDAYEVERYDAY practice #practice practice practice practice fill in that gap.. DONT FORGET how important it is to have a nice #ROOTPASS fill it in. .. all the to the brim. #miller_welders #syncrowave #NTKUSTOMS #LOVE this stuff #NEEDFULTHINGZ #HOTRODSHOP #LA #SOCAL #NIKE #JUSTDOIT #SUSPENSION #NTKUSTOMSDOTCOM #walkingdead #JUSTBOUGHTACHEETAH #JUSTINBIEBER (at Needfulthingz Hotrod SHOP / ntkustoms.com Retail PARTS)
#justboughtacheetah#justinbieber#rootpass#love#la#walkingdead#needfulthingz#practice#syncrowave#alldayeveryday#alldaytigger#miller_welders#ntkustoms#hotrodshop#nike#suspension#socal#justdoit#tigeverything#ntkustomsdotcom
1 note
·
View note
Photo
#6G #Cutting #PipeWelding #RootPass ✌️😎
0 notes
Photo
Never Stop Learning #SMAW #TIC #RootPass #6Groove #6G #AllPositions #WeldAllDamnDay #MyPassion #Boilermaker
1 note
·
View note