1.創建一個文件夾映射容器內文件
root@cenots-7.5:/home#mkdir demo
root@cenots-7.5:/home#ll
2.拉取nginx鏡像
root@cenots-7.5:/home/demo#docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
1f7ce2fa46ab: Already exists
9b16c94bb686: Pull complete
9a59d19f9c5b: Pull complete
9ea27b074f71: Pull complete
c6edf33e2524: Pull complete
84b1ff10387b: Pull complete
517357831967: Pull complete
Digest: sha256:10d1f5b58f74683ad34eb29287e07dab1e90f10af243f151bb50aa5dbb4d62ee
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
3.查看鏡像
root@cenots-7.5:/home/demo#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest a6bd71f48f68 9 days ago 187MB
postgres 12 0d56839ac0df 3 weeks ago 412MB
redis latest 7c4b517da47d 2 months ago 153MB
openzipkin/zipkin latest 7fb470c13693 4 months ago 165MB
postgres latest 1921dda0e2c5 5 months ago 412MB
redis 6.2.10-alpine a470c0525301 9 months ago 27.1MB
sonarqube 8.9.10-community 4009139ebd19 11 months ago 490MB
seataio/seata-server 1.5.2 f6a5368b6720 16 months ago 186MB
nacos/nacos-server 2.0.3 433eb51fef8d 2 years ago 1.05GB
seataio/seata-server 1.4.2 4909c4c024dc 2 years ago 156MB
4.啟動nginx容器
root@cenots-7.5:/home/demo#docker run -p 6886:80 --name nginx -d nginx:latest
5bbd677a0cdd067ae4c2c23f6db19e7a02770ccb49e840facf963a8d24317857
root@cenots-7.5:/home/demo#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5bbd677a0cdd nginx:latest "/docker-entrypoint.…" 17 seconds ago Up 15 seconds 0.0.0.0:6886->80/tcp, :::6886->80/tcp nginx
be0f46c5450a seataio/seata-server:1.4.2 "java -Djava.securit…" 4 months ago Up 2 weeks 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp seata-server
e5e9b616802c nacos/nacos-server:2.0.3 "bin/docker-startup.…" 5 months ago Up 2 weeks 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp nacos203
85c7e7acf404 redis:6.2.10-alpine "docker-entrypoint.s…" 9 months ago Up 2 weeks 0.0.0.0:56379->6379/tcp, :::56379->6379/tcp
5.進入容器內部
root@cenots-7.5:/home/demo#docker exec -it nginx bash
root@5bbd677a0cdd:/# ls
bin docker-entrypoint.d home lib64 mnt root srv usr
boot docker-entrypoint.sh lib libx32 opt run sys var
dev etc lib32 media proc sbin tmp
6.查看容器內部文件位置
root@5bbd677a0cdd:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
7.拷貝容器內文件到外部路徑
root@cenots-7.5:/home/demo#docker cp nginx:/etc/nginx ./
Preparing to copy...
Copying from container - 16.9kB
Successfully copied 16.9kB to /home/demo/./
root@cenots-7.5:/home/demo#ll
總用量 0
drwxr-xr-x 3 root root 132 11月 21 17:05 nginx
root@cenots-7.5:/home/demo#cd nginx
root@cenots-7.5:/home/demo/nginx#ll
總用量 24
drwxr-xr-x 2 root root 26 12月 1 10:29 conf.d
-rw-r--r-- 1 root root 1007 10月 24 21:46 fastcgi_params
-rw-r--r-- 1 root root 5349 10月 24 21:46 mime.types
lrwxrwxrwx 1 root root 22 10月 25 00:10 modules -> /usr/lib/nginx/modules
-rw-r--r-- 1 root root 648 10月 25 00:10 nginx.conf
-rw-r--r-- 1 root root 636 10月 24 21:46 scgi_params
-rw-r--r-- 1 root root 664 10月 24 21:46 uwsgi_params
8.查看nginx的html和logs路徑位置
root@cenots-7.5:/home/demo/nginx#docker exec -it nginx bash
root@5bbd677a0cdd:/# cd usr
root@5bbd677a0cdd:/usr# ls
bin games include lib lib32 lib64 libexec libx32 local sbin share src
root@5bbd677a0cdd:/usr# cd share
root@5bbd677a0cdd:/usr/share# ls
X11 common-licenses dpkg java man pam-configs util-linux
base-files debconf fontconfig keyrings maven-repo perl5 xml
base-passwd debianutils fonts libc-bin menu pixmaps zoneinfo
bash-completion dict gcc libgcrypt20 misc polkit-1 zsh
bug doc gdb lintian nginx tabset
ca-certificates doc-base info locale pam terminfo
root@5bbd677a0cdd:/usr/share# cd nginx
root@5bbd677a0cdd:/usr/share/nginx# ls
htmlroot@5bbd677a0cdd:/usr/share# cd nginx
root@5bbd677a0cdd:/usr/share/nginx# ls
html
root@5bbd677a0cdd:/usr/share/nginx# cd /var/log
root@5bbd677a0cdd:/var/log# cd nginx
root@5bbd677a0cdd:/var/log/nginx# ls
access.log error.logroot@cenots-7.5:/home/demo#mkdir logs
root@cenots-7.5:/home/demo#mkdir html
root@cenots-7.5:/home/demo#ll
總用量 0
drwxr-xr-x 3 root root 132 11月 21 17:05 conf
drwxr-xr-x 2 root root 6 12月 1 10:50 html
drwxr-xr-x 2 root root 6 12月 1 10:49 logs
9.刪除現有nginx容器,準備啟動正式容器
root@cenots-7.5:/home/demo#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5bbd677a0cdd nginx:latest "/docker-entrypoint.…" 22 minutes ago Up 22 minutes 0.0.0.0:6886->80/tcp, :::6886->80/tcp nginx
be0f46c5450a seataio/seata-server:1.4.2 "java -Djava.securit…" 4 months ago Up 2 weeks 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp seata-server
e5e9b616802c nacos/nacos-server:2.0.3 "bin/docker-startup.…" 5 months ago Up 2 weeks 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp nacos203
85c7e7acf404 redis:6.2.10-alpine "docker-entrypoint.s…" 9 months ago Up 2 weeks 0.0.0.0:56379->6379/tcp, :::56379->6379/tcp redis6.2
root@cenots-7.5:/home/demo#docker stop nginx
nginxroot@cenots-7.5:/home/demo#docker remove nginx
nginx
root@cenots-7.5:/home/demo#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
be0f46c5450a seataio/seata-server:1.4.2 "java -Djava.securit…" 4 months ago Up 2 weeks 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp seata-server
e5e9b616802c nacos/nacos-server:2.0.3 "bin/docker-startup.…" 5 months ago Up 2 weeks 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp nacos203
85c7e7acf404 redis:6.2.10-alpine "docker-entrypoint.s…" 9 months ago Up 2 weeks 0.0.0.0:56379->6379/tcp, :::56379->6379/tcp
10.啟動正式nginx容器,掛載相關html,logs,conf目錄
root@cenots-7.5:/home/demo#docker run -p 6886:80 --name nginx -v /home/demo/conf:/etc/nginx -v /home/demo/html:/usr/share/nginx/html -v /home/demo/logs:/var/log/nginx -d nginx:latest
93f19b37815179019f436d6a60073fb56314297a4b60752b84a96f780436199d
root@cenots-7.5:/home/demo#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93f19b378151 nginx:latest "/docker-entrypoint.…" 25 seconds ago Up 25 seconds 0.0.0.0:6886->80/tcp, :::6886->80/tcp nginx
be0f46c5450a seataio/seata-server:1.4.2 "java -Djava.securit…" 4 months ago Up 2 weeks 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp seata-server
e5e9b616802c nacos/nacos-server:2.0.3 "bin/docker-startup.…" 5 months ago Up 2 weeks 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp nacos203
85c7e7acf404 redis:6.2.10-alpine "docker-entrypoint.s…" 9 months ago Up 2 weeks 0.0.0.0:56379->6379/tcp, :::56379->6379/tcp
11.查看瀏覽器訪問服務http://ip:6886,會報錯,因為html文件夾里面沒有index.html
root@cenots-7.5:/home/demo#cd logs
root@cenots-7.5:/home/demo/logs#ll
總用量 4
-rw-r--r-- 1 root root 0 12月 1 10:54 access.log
-rw-r--r-- 1 root root 855 12月 1 10:54 error.log
root@cenots-7.5:/home/demo/logs#tailf access.log
10.60.1.117 - - [01/Dec/2023:02:56:11 +0000] "GET / HTTP/1.1" 403 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "-"
10.60.1.117 - - [01/Dec/2023:02:56:12 +0000] "GET / HTTP/1.1" 403 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "-"
^C
root@cenots-7.5:/home/demo/logs#ll
總用量 8
-rw-r--r-- 1 root root 322 12月 1 10:56 access.log
-rw-r--r-- 1 root root 1233 12月 1 10:56 error.log
12.查看錯誤日志
root@cenots-7.5:/home/demo/logs#tailf error.log
2023/12/01 02:54:50 [notice] 1#1: start worker process 22
2023/12/01 02:54:50 [notice] 1#1: start worker process 23
2023/12/01 02:54:50 [notice] 1#1: start worker process 24
2023/12/01 02:54:50 [notice] 1#1: start worker process 25
2023/12/01 02:54:50 [notice] 1#1: start worker process 26
2023/12/01 02:54:50 [notice] 1#1: start worker process 27
2023/12/01 02:54:50 [notice] 1#1: start worker process 28
2023/12/01 02:54:50 [notice] 1#1: start worker process 29
2023/12/01 02:56:11 [error] 22#22: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 10.60.1.117, server: localhost, request: "GET / HTTP/1.1", host: "10.6.132.166:6886"
2023/12/01 02:56:12 [error] 22#22: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 10.60.1.117, server: localhost, request: "GET / HTTP/1.1", host: "10.6.132.166:6886"
2023/12/01 02:56:56 [error] 22#22: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 10.60.1.117, server: localhost, request: "GET / HTTP/1.1", host: "10.6.132.166:6886"
2023/12/01 02:56:57 [error] 22#22: *1 directory index of "/usr/share/nginx/html/" is forbidden, client: 10.60.1.117, server: localhost, request: "GET / HTTP/1.1", host: "10.6.132.166:6886"
^C
root@cenots-7.5:/home/demo/logs#cd ../
root@cenots-7.5:/home/demo#ll
總用量 0
drwxr-xr-x 3 root root 132 11月 21 17:05 conf
drwxr-xr-x 2 root root 6 12月 1 10:50 html
drwxr-xr-x 2 root root 41 12月 1 10:54 logs
root@cenots-7.5:/home/demo#cd html
root@cenots-7.5:/home/demo/html#ll
總用量 0
13.創建一個index.html
root@cenots-7.5:/home/demo/html#vi index.html<html>
<div>hello docker nginx!!!</div>
</html>
14.刷新網頁 即可
15.設置開機啟動
root@cenots-7.5:/home/demo/html#systemctl enable dockerroot@cenots-7.5:/home/demo/html#docker update --restart=always nginx
--restart具體參數值詳細信息:
no: 默認策略,容器退出時不重啟容器;
on-failure: 在容器非正常退出時(退出狀態非0)才重新啟動容器;
on-failure:3? 在容器非正常退出時重啟容器,最多重啟3次;
always: 無論退出狀態是如何,都重啟容器;
unless-stopped: 在容器退出時總是重啟容器,
但是不考慮在 Docker 守護進程啟動時就已經停止了的容器。
Docker實戰筆記 二 Springboot Idea 插件打包-CSDN博客