Docker的筆記本
一开始。(Yī shǐ.)
Docker笔记
学习集装箱相关内容
如果是M1 Mac,可以参考这篇文章,在安装Rosetta后使用docker。
softwareupdate --install-rosetta
关于在 M1 Mac 上失败或无法运行的命令,我将记录下无法运行的信息,但看起来 nginx 这样的命令好像是正常工作的。
有一个方便的命令
通过使用watch命令,可以轻松安装brew。
当想要始终监视命令执行结果时,非常方便。
watch -t "docker ps"
执行环境
M1 MacBook macOS Big Sur 版本 11.2
MacBook Air (M1, 2020) Apple M1,内存 16GB,固态硬盘 256GB
Docker 版本 20.10.3,构建 48d30b5
或者
Windows 10 SurfaceBook
Docker 操作命令
基本 – 简而言之
- プロセスを表示
docker ps
- イメージを取得 (Pull)
# nginx を取得する。
docker pull nginx
- イメージを表示 (List)
docker images
- イメージの履歴を表示 (History)
docker history nginx
- イメージを削除 (Delete Docker Image)
docker rmi nginx
docker images
操作 Nginx
获取和启动停止nginx服务器容器的示例
# nginx のdockerイメージを取得する。
docker pull nginx
# nginx のdocker イメージを起動する。
docker run -p 80:80 --name nginx nginx
# 作動中のコンテナ一覧を表示 (List)
docker ps
# Webページをcurlを使って取得
curl localhost:80
# nginx コンテナを停止
docker stop nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
# nginx コンテナを削除
docker rm nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
在后台操作Nginx
获取并启动后台停止nginx服务器容器的示例代码。
# nginx のdockerイメージを取得する。
docker pull nginx
# nginx のdocker イメージを起動する。
docker run --detach -p 80:80 --name nginx nginx
# 作動中のコンテナ一覧を表示 (List)
docker ps
# Webページをcurlを使って取得
curl localhost:80
# nginx コンテナを停止
docker stop nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
# nginx コンテナを削除
docker rm nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
在操作nginx时(浏览nginx的内部)
找到nginx的配置文件
# nginx のdocker イメージを起動する。
docker run --detach -p 80:80 --name nginx nginx
# 作動中のコンテナ一覧を表示 (List)
docker ps
# Webページをcurlを使って取得
curl localhost:80
# sh でコンテナに乗り込む
docker exec -it nginx sh
# ファイルを探索する
find / -type d -name nginx | xargs grep -r html
# nginx コンテナを停止
docker stop nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
# nginx コンテナを削除
docker rm nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
在操作nginx(将顶部页面进行覆盖)时。
将nginx的默认页面修改为“Hello, World”。
# nginx のdocker イメージを起動する。
docker run --detach -p 80:80 --name nginx nginx
# 作動中のコンテナ一覧を表示 (List)
docker ps
# Webページをcurlを使って取得
curl localhost:80
# sh でコンテナに乗り込む
docker exec -it nginx sh
# ファイルを探索する
find / -type d -name nginx | xargs grep -r html
# 格納先されているデフォルトのWebページを表示
cat /usr/share/nginx/html/index.html
# Hello,Worldで上書き
echo "Hello World" > /usr/share/nginx/html/index.html
# sh から抜ける
exit
# Webページをcurlを使って取得 「Hello,World」と表示されていればOK
curl localhost:80
# nginx コンテナを停止
docker stop nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
# nginx コンテナを削除
docker rm nginx
# 停止中のコンテナも全て一覧表示
docker ps --all
“Docker rmi 和 docker rm 有什么不同?” (Docker rmi and docker rm have any difference?)
删除Docker镜像使用rmi命令,
删除Docker容器使用rm命令。
有些命令似乎可以用于调试容器。
- コンテナのログを表示 (Log)
可以查看容器内的执行日志。
例如:
当对localhost:80进行curl时,会留下nginx容器的日志。
172.17.0.1 – – [21/二月/2021:13:07:45 +0000] “GET / HTTP/1.1” 200 612 “-” “curl/7.64.1” “-“
docker logs nginx
- コンテナのメタデータを見る (Inspect Docker container)
docker inspect nginx
从正在运行的容器中创建自定义镜像。
# nginx のdockerイメージを取得
docker pull nginx
# カレントディレクトリに「Hello World2」と記載したindex.htmlを用意
echo "Hello World2" > $(pwd)/index.html
# nginx イメージを用いてhelloという名前でコンテナをバックグランドで実行
# この時 ワーキングディレクトリをボリュームマウント
docker run -d --volume "$(pwd)":/usr/share/nginx/html -p 80:80 --rm --name hello nginx
# curl を実行して動作確認
curl localhost
> Hello World2
# コンテナ内のログを確認
# 直前のcurl のログが見える
docker logs hello
> 172.17.0.1 - - [28/Feb/2021:13:34:07 +0000] "GET / HTTP/1.1" 200 13 "-" "curl/7.64.1" "-"
# helloコンテナからイメージを作成
docker commit hello hello_world
# イメージ一覧を表示
# オリジナルイメージ、hello_worldが作成できていることを確認
docker images
> hello_world latest d7e0f64fec8f 6 seconds ago 126MB