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

广告
将在 10 秒后关闭
bannerAds