-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-test.txt
541 lines (361 loc) · 18 KB
/
docker-test.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
4.イメージの作成
修正したコンテナのCONTAIER IDを確認します。
コンテナの確認
$ dodcker ps -a
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
b10edb89cd05 kohei/httpd:ver1.0 "/bin/bash" 43 seconds ago Exited (0) 12 seconds ago gloomy_khorana
確認したら、$ docker commit -m "コメント" <コンテナID> <リポジトリ:タグ>でローカルリポジトリへコミットします。
コンテナのコミット
$ docker commit -m "edited container" b10edb89cd05 kohei/httpd:ver1.0
02607c25ed22c085a8e4964c91406baa911f194265db5d4ddfd44a2f96e799ec
完了したら再度$ docker imagesでIMAGE IDを確認します。
コンテナイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
kohei/httpd ver1.0 02607c25ed22 5 seconds ago 264.3 MB
すぐに確認すればCREATEDが数秒前という記載になっています。また、コミットする前に確認したIMAGE IDは異なるIDになっています。
5.コンテナのpush
ローカルリポジトリへコミットが完了したらDockerHubへpushします。
DockerHubへpush
$ docker push kohei/httpd:ver1.0
The push refers to a repository [docker.io/kohei/httpd] (len: 1)
02607c25ed22: Pushed
4cf71c080937: Image already exists
e87afdecef01: Image already exists
13bab7291cec: Image already exists
d3bf674be7aa: Image already exists
ver1.0: digest: sha256:fb10c3626b1fc732c314efc132a29f7ee37c52176547a076c72553a97eaee949 size: 9116
■go lang 環境
https://hodalog.com/how-to-build-golang-dev-environment/
docker image pull golang:latest
docker container run -dt -v $(pwd):/go/src --name golang_dev golang:latest
docker container exec -it golang_dev /bin/bash
cd /go/src/
test
docker container run -dt -p 8080:8080 -v $(pwd):/go/src --name golang_dev golang:latest
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
mkdir hello
touch hello.go
・ホストIPの調べ方
hostname -I
・docker build .
docker run -p 8888:8888 -v /home/hello・・・・/docker_build:/work --name my-lab 02c1eb9cee0d
docker run -it --rm --name continuumio-anaconda3 continuumio/anaconda3 /bin/bash
docker commit コンテナ名 イメージ名
docker commit testcontainer ubuntu:latest
リポジトリ名=イメージ名
■タグ名変更
docker tag 旧タグ名 新タグ名 → 保存される
■push
docker push taboopython/my-first-repo:tagname
■container化
docker commit コンテナ名 イメージ名
docker commit testcontainer ubuntu:latest
リポジトリ名=イメージ名
■タグ名変更
docker tag 旧タグ名 新タグ名 → 保存される
■push
docker push taboopython/my-first-repo:tagname
■container化
docker commit コンテナ名 イメージ名
docker commit testcontainer ubuntu:latest
リポジトリ名=イメージ名
■タグ名変更
docker tag 旧タグ名 新タグ名 → 保存される
■push
docker push taboopython/my-first-repo:tagname
■docker hub
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
■■■docker pull hello-world:latest
docker images で今手元にあるDocker imageのリストを確認できます.
コンテナ実行したらそのままbashを起動させるということですね.
(bash についてはこちらの記事をご参考ください.)
■ドッカー内に入る
$docker run -it {IMAGE名:TAG名} bashこの形はよく使うので覚えておくと
■docker-compose up -d --build
docker exec -it python python qiitatest.py
■docker 立ち上げ
docker build
$ docker-compose build
docker-compose up
docker-compose.ymlに書かれた依存関係をもとに、よしなにイメージ
を元にしてコンテナの作成と起動してくれる。
イメージはdocker-compose buildで作成する必要があります。
■docker run it 1394a1d7124f :init /bin/sh
■console.input
docker-compose run --rm scraping app/scraping/by_selenium.py
docker-compose build
docker-compose.ymlの内容に基づいてイメージを作成する
■docker停止
docker stop コンテナID
■docker消去
docker rm コンテナID
■イメージ消去
docker rmi IMGE ID
docker-compose down
sudo docker run -it ubuntu bash
■
docker pull jupyter/datascience-notebook
■ホーム(デスクトップ)
/home/hellofromeizo
■Docker
https://qiita.com/phorizon20/items/57277fab1fd7aa994502
■イメージ作成
docker pull ubuntu:latest
■環境作成
vi Dockerfile
■ビルド
docker build . -t hoge/fuga:1.0
■イメージの確認
docker images
■イメージ立ち上げ
docker run -it hoge/fuga:1.0 /bin/bash
$ vi app.py
atom ○○.py
以上の確認が終わったら、exitしてコンテナからログアウトしましょう。
★★★ 久々にやる時要参照
$ docker ps -a
停止中のコンテナにログインするには、まずdocker start <コンテナ名>
で起動し、docker exec -it <コンテナ名> /bin/bashでログインすることが
出来ます。
docker rm <コンテナ名>などでこまめに消すか、もしくはdocker runの際に--rmオプションをつけてログアウトと同時に自動的に消えるようにすると良いですね。
まずはマウントする用のフォルダを作り、そこの先ほどのapp.pyを移動します。
$ mkdir vol
$ mv app.py vol/
docker run -it -p 5000:5000 -v $(pwd)/vol:/home hoge/fuga:1.0 /bin/bash
root@79cc27644e44:/#
https://thinkit.co.jp/article/9701
■raspberrypi
ps aux | grep docker
■apache起動
docker run -d httpd
■docker container run -t -python 9000:8080 gihyodocker/echo:latest
■stop させる時
docker container stop $(docker container ls -q)
■イメージビルド
docker image build -t example/echo:latest .
■イメージ確認
docker image ls
■コンテナストップ
$ docker container stop $(docker container ls --filter "ancestor=○タグ名○" -q)
■Docker コマンド集
https://qiita.com/gounx2/items/c63a04f36c4bfd9621ff
docker-compose build
docker-compose.ymlの内容に基づいてイメージを作成する
$ docker-compose build
docker-compose up
docker-compose.ymlに書かれた依存関係をもとに、よしなにイメージを元にしてコンテナの作成と起動してくれる。
イメージはdocker-compose buildで作成する必要があります。
$ docker-compose up
docker-compose down
■ls
:~$ source venv/bin/activate
(venv) :~$ docker ps
・テスト
docker image pull gihyodocker/echo:latest
docker container run -t -p 9000:8080 gihyodocker/echo:latest
→ストップさせる
docker stop $(docker container ls -q)
・イメージビルド Dockerfile と実行ファイル(この例ではmain.go)
sudo docker image build -t example/echo:latest .
→ f オプションにより、Dockerfile を指定できる。
sudo docker build -f Dockerfile2 -t example/echo:latest .
・ストップ
docker container stop $(docker container ls --filter"ancestor=example/echo" -q)
・ポートフォワーディング コンテナ実行
docker container run -d -p 9000:8080 example/echo:latest
→ d オプションは バックブラウンドで実行
・コンテナ実行 普通の実行
docker container run example/echo:latest
ホスト確認
・curl http://localhost:9000
・ポート確認
docker container ls
・ストップ
docker container stop
・コンテナ一括削除
docker rm `docker ps -a -q`c
・イメージ一括削除
docker rmi `docker images -q`
・イメージ個別削除
docker rmi id
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
■分析環境構築 python jupyter matplot
https://www.fabrica-com.co.jp/techblog/technology/994/
・docker pull ubuntu:18.04
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 a2a15febcdf3 2 weeks ago 64.2MB
docker run -it --name=analysis_try ubuntu:18.04 /bin/bash
apt-get install -y tzdata build-essential curl git libbz2-dev libffi-dev liblzma-dev libncurses5-dev libncursesw5-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev llvm make tk-dev unzip vim wget xz-utils zlib1g-dev
・apt-get update -y && apt-get upgrade -y
・pyenvでpythonをインストール
# cd /root
# mkdir -p .pyenv
# mkdir -p local/bin/python-3.6.9
# git clone https://github.com/pyenv/pyenv.git .pyenv/
# ./.pyenv/plugins/python-build/install.sh
# /usr/local/bin/python-build -v 3.6.9 ./local/bin/python-3.6.9
# echo 'export PATH="$HOME/local/bin/python-3.6.9/bin:$PATH"' >> ~/.bashrc
# source .bashrc
# python -V
Python 3.6.9
・コンテナ作成
Dockerfileからイメージを作成
docker build -t ubuntu-analysis .
・コンテナrun
docker run -d -t --name=analysis -v $PWD/notebooks:/notebooks -p 8000:8000 ubuntu-analysis
★■tensor gpu test
docker exec -it tensorflow bash
■tensorflow テスト
・tensortest build dir cd tensortest
docker build --pull -t tensorflow-model-server -f Dockerfile .
■tensorflow & opencv 実行環境
・docker build -t tensor-docker:0.1 .
・docker run --rm -v `pwd`:/home/tensor-docker -it tensor-docker:0.1 /bin/bash
■datascientist-100 knocks
$ git clone [Repository URL] ※
$ cd 100knocks-preprocess
$ docker-compose up -d --build
■keras
最新
docker pull taboopython/keras:1.1
→前docker pull taboopython/keras:1.0
git clone https://github.com/qqwweee/keras-yolo3.git
cd keras-yolo3
git clone https://github.com/taboopythoerastest.git
pip install -r requirements.txt
wget https://pjreddie.com/media/files/yolov3.weights
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
docker run -it -d --name=keras -p 7777:7777 -v $PWD/keras:/keras dd429057cc84 bash
docker run -it -d --name=keras -p 7777:7777 -v $PWD/keras:/keras 9ac638e919a7 bash
docker cp sample5.png keras:/keras/keras-yolo3
python yolo_video.py --image
python yolo_video.py --input ファイル名.mp4
■yolo 2
docker run -p 80:80 registry.gitlab.com/sleepless-se/imageai_object_detection_api
そして、こちらのコマンドでAPIに画像を投げます。
※ path/to/image.jpg は自分の画像のパスに置き換えてください。
curl -X POST -F image=/home/hellofromeizo/kerastest/sample1.png http://localhost/predict
■analysis
docker restart analysis
localhost:8000 →
■
docker run --gpus all nvidia/cuda:10.1-base-ubuntu18.04 nvidia-smi
docker run --gpus all -it --name tensorflow-gpu -v $PWD/dml:/dmltest -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter
docker run --gpus all -it -d --name=tensorflow-gpu -v $PWD/dml:/tf/dmltest -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter
docker run --gpus all -it -d --name=tensorflow-gpu114 -v /home/saboten/workspace/dml:/tf/dmltest -p 8888:8888 tensorflow/tensorflow:latest-gpu-jupyter
・コンテナ作成
Dockerfileからイメージを作成
docker build -t ubuntu-analysis .
※ requirements.txt がない場合は、docker hub から
docker pull taboopython/analysisforrepo:latest
https://hub.docker.com/layers/107402714/taboopython/analysisforrepo/latest/images/sha256-5cef9030ae650a051177578a589852f1da24dfb70f443326cd7f718cd58f2756?context=repo
docker run -d -t --name=analysis -v /home/saboten/workspace/analysis/notebooks:/notebooks -p 8000:8000 ubuntu-analysis
docker run -d -t --name=analysis2 -v /mnt/320gbssd/:/notebooks -p 8000:8000 taboopython/analysisforrepo:latest
-----------------------------------------------------------------------------------------
◯ nginxの展開
docker container run -p 8080:80 nginx
◯バックグラウンドでcontainer実行 -d
docker container run --name mynginx2 -d -p 8082:80 nginx:1.9.15-alpine
※-n により、コンテナ名の重複を避け、-pで[8082]の箇所を変更すれば複数同時に実行可能
○コンテナのbashを操作可能にする
docker container run -it nginx bash
○コンテナ停止後に即破棄する
docker run -rm
○コンテナ情報確認 (CPU使用率やメモリ使用率など)
docker stats
※ -f "is-official=true" -f "stars=50" python
○pythonコンテナ立ち上げ&スペシャルファイル(空実行ファイル)
docker container run --name c2env1_app_base -d python:3.7.5-slim tail -f /dev/nul
※tail -f /dev/nulで 何もしないコンテナとして作成 (kubernetesでよく使う)
○bash に入らずexecコマンドのみで操作してモジュールインストール
docker container exec c2env1_app_base pip install flask==1.1.1
○ホストローカルディレクトリファイルをコピーしてrunしているコンテナにペースト
docker container cp server.py c2env1_app_base:/
※ docker exec -it c2env1_app_base bash で コピー&ペーストできていることが確認できる
○docker image を更新
コンテナを起動してから現在までに、コンテナ起動時に指定したDockerイメージに対して行った変更を全て反映した新しいDockerイメージを作成
(例)docker container commit c2env1_app_base c2env1_app
○環境変数付き起動
docker container run --name c2env1_app -p 8081:80 -d -e MESSAGE="Hello Docker Env saboten" -e PORT=80 c2env_app python -u /server.py
※環境変数はコンテナ起動後には変更できない。変更するためには新しいコンテナを作り直す必要あり。
※stop,startし直してセットすることもできない。
○container のIPを確認
docker container exec c2env1_app hostname -i
172.17.0.2
○docker ホストへの接続確認
(docker versionをリモートで確認)
docker -H ssh://○○@... version
◯鍵の生成
ssh-keygen -t rsa -m PEM -q -N ""
◯鍵のコピー
ssh-copy-id ///@////
○ポートフォワーディングを確認
docker container run -d --rm -p 8080:80 nginx:1.17.6-alpine
docker container ls --format='table{{.ID}}/t{{.Names}}/t{{.Ports}}'
docker container port e868af537b28
○ネットワークリスト表示
docker network ls
○ネットワーク作成
docker network create ////
docker network create -d //// ////
○コンテナをネットワークに接続
docker container run -d --rm --network bridge1 -p 8080:80 nginx:1.17.6-alpine
○ネットワークに属するコンテナを確認
docker network inspect bridge
○ネットワーク削除
docker network rm bridge1
○python環境docker container
docker container run --name base -it -p 8080:80 python:3.7.5-slim bash
○仮想マシンホストに転送
scp -P 2222 -r server.py ・・・・・@・・・・・:/home/・・・
○仮想マシンホストからコンテナへコピー
docker container cp server.py base:/
○コンテナからコマンド実行元にファイルをコピー
docker container cp base:/etc/hosts ./
○タグ付け
docker image tag c2img1_app ○○○/c2img1_app:v1.0
○docker-DockerHubへpush
docker image push taboopython/c2img1_app:v1.0
○docker compose
(compose.ymlがあるディレクトリで)
docker compose up -d --build
○現時点でのコンテナの状態をDockerイメージとして出力
コンテナに対して行った設定や更新したファイルを含め、コンテナ内の全ファイルと合わせて新しいDockerイメージを作成。
例えば、公式なCentOSのDockerイメージを独自にカスタマイズして、個人用のCentOSイメージを作成する場合などに利用できる
docker commit [オプション] [コンテナ] [リポジトリ[:タグ]]
○リモート docker-compose
docker-compose -H tcp://192.168.56.102 up -d
-----------------------------
■wordpress project
ネットワークとmysql コンテナを作成
docker network create -d bridge wp-net
docker container run -d --network wp-net --name mysql --mount source=mysqlvolume,target=/var/lib/mysql --mount type=bind,source=/Users/yuichi/mysqlbackup,target=/mysqlbackup -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=password mysql:5.7.28
コンテナ作成
docker container run -d --network wp-net -p 8080:80 -e WORDPRESS_DB_HOST=mysql:3306 -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=password --name wordpress wordpress:5.2.3-php7.3-apache
バックアップ取得
docker container exec mysql bash -c "mysqldump u root -ppassword -A > mysqlbackup/20200101.sql"
docker container exec mysql cat /mysqlbackup/20200101.sql
コンテナとボリューム削除 バックアップ 破棄テスト
docker container stop mysql wordpress
docker container rm mysql wordpress
docker volume rm mysqlvolume
mysql のコンテナ作成 バックアップ復旧
docker container run -d --network wp-net --name mysql --mount source=mysqlvolume,target=/var/lib/mysql --mount type=bind,source=/Users/yuichi/mysqlbackup,target=/mysqlbackup -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=password mysql:5.7.28
docker container exec mysql bash -c "mysql -u root -ppassword < /mysqlbackup/20200101.sql"
wordpress のコンテナ作成
docker container run -d --network wp-net -p 8080:80 -e WORDPRESS_DB_HOST=mysql:3306 -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=password --name wordpress wordpress:5.2.3-php7.3-apache
★★docker-compose インストール
https://docs.docker.com/compose/install/
■VM 容量追加
https://masalib.hatenablog.com/entry/2017/07/21/220000
■docker コンテナ イメージ 一括削除
https://qiita.com/boiyama/items/9972601ffc240553e1f3
docker rm -f `docker ps -a -q`
docker rmi `docker images -q`