1.安装docker环境
[root@elk91 ~]#tar xf oldboyedu-autoinstall-docker-docker-compose.tar.gz
[root@elk91 ~]#./install-docker.sh i
'/usr/bin/containerd' -> '/oldboyedu/softwares/docker/containerd'
'/usr/bin/containerd-shim' -> '/oldboyedu/softwares/docker/containerd-shim'
'/usr/bin/containerd-shim-runc-v2' -> '/oldboyedu/softwares/docker/containerd-shim-runc-v2'
'/usr/bin/ctr' -> '/oldboyedu/softwares/docker/ctr'
'/usr/bin/docker' -> '/oldboyedu/softwares/docker/docker'
'/usr/bin/docker-compose' -> '/oldboyedu/softwares/docker/docker-compose'
'/usr/bin/docker-init' -> '/oldboyedu/softwares/docker/docker-init'
'/usr/bin/docker-proxy' -> '/oldboyedu/softwares/docker/docker-proxy'
'/usr/bin/dockerd' -> '/oldboyedu/softwares/docker/dockerd'
'/usr/bin/runc' -> '/oldboyedu/softwares/docker/runc'
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Client:
Version: 20.10.24
API version: 1.41
Go version: go1.19.7
Git commit: 297e128
Built: Tue Apr 4 18:17:06 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.24
API version: 1.41 (minimum version 1.12)
Go version: go1.19.7
Git commit: 5d6db84
Built: Tue Apr 4 18:23:02 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.6.20
GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc:
Version: 1.1.5
GitCommit: v1.1.5-0-gf19387a6
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker Compose version v2.23.0
安装成功,欢迎使用尹正杰二进制docker安装脚本,欢迎下次使用!2.安装完毕,检查docker信息 确认是否安装成功
[root@elk91 ~]#docker info
Client:
Context: default
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.24
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc version: v1.1.5-0-gf19387a6
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.15.0-173-generic
Operating System: Ubuntu 22.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.882GiB
Name: elk91
ID: 3EJ2:WE2P:7Z24:EW7E:LQEU:TAGU:KUY3:R55V:GLCE:RG3P:IXAC:FW4F
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://tuv7rqqq.mirror.aliyuncs.com/
https://docker.mirrors.ustc.edu.cn/
https://hub-mirror.c.163.com/
https://reg-mirror.qiniu.com/
Live Restore Enabled: false
Product License: Community Engine3.docker环境初体验
1.下载镜像
[root@elk91 ~]#docker image pull registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
v1: Pulling from yinzhengjie-k8s/apps
5758d4e389a3: Pull complete
51d66f629021: Pull complete
ff9c6add3f30: Pull complete
dcc43d9a97b4: Pull complete
5dcfac0f2f9c: Pull complete
2c6e86e57dfd: Pull complete
2dd61e30a21a: Pull complete
Digest: sha256:3bee216f250cfd2dbda1744d6849e27118845b8f4d55dda3ca3c6c1227cc2e5c
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v12.查看镜像列表
方式一:
[root@elk91 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
方式二:
[root@elk91 ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB3.启动容器
[root@elk91 ~]#docker container run -d -p 81:80 --name xiuxian registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
736cde85ddb5f2a9cbb71f90dc038df1dca108f0ef763345368eaf8398b6e0bf4.查看容器
[root@elk91 ~]#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian5.访问测试
在浏览器输入10.0.0.91:81

一.docker常用的镜像管理命令
1.常用镜像基础管理
1.查看镜像列表
[root@elk91 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
2.拉取镜像
[root@elk91 ~]#docker image pull registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2
v2: Pulling from yinzhengjie-k8s/apps
5758d4e389a3: Already exists
51d66f629021: Already exists
ff9c6add3f30: Already exists
dcc43d9a97b4: Already exists
5dcfac0f2f9c: Already exists
2c6e86e57dfd: Already exists
b07c4abce9eb: Pull complete
Digest: sha256:3ac38ee6161e11f2341eda32be95dcc6746f587880f923d2d24a54c3a525227e
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2
3.给镜像打标签
[root@elk91 ~]#docker image tag registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 oldboyedu:xixi
[root@elk91 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
oldboyedu xixi f28fd43be4ad 2 years ago 23MB
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v2 d65adc8a2f32 2 years ago 22.9MB
4.删除镜像
[root@elk91 ~]#docker image rm oldboyedu:xixi
Untagged: oldboyedu:xixi
[root@elk91 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v2 d65adc8a2f32 2 years ago 22.9MB2.镜像的迁移
[root@elk91 ~]#docker image save registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 > oldboyedu-xiuxian-v1.tar.gz
[root@elk91 ~]#docker image save registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2 -o oldboyedu-xiuxian-v2.tar.gz
[root@elk91 ~]#ll oldboyedu-xiuxian-*
-rw-r--r-- 1 root root 24512000 Apr 8 20:15 oldboyedu-xiuxian-v1.tar.gz
-rw------- 1 root root 24496128 Apr 8 20:16 oldboyedu-xiuxian-v2.tar.gz2.将镜像拷贝到其他服务器
[root@elk91 ~]#scp oldboyedu-xiuxian-* 10.0.0.92:~
ssh: connect to host 10.0.0.92 port 22: No route to host
lost connection
[root@elk91 ~]#scp oldboyedu-xiuxian-* 10.0.0.92:~
root@10.0.0.92's password:
oldboyedu-xiuxian-v1.tar.gz 100% 23MB 51.3MB/s 00:00
oldboyedu-xiuxian-v2.tar.gz 100% 23MB 66.3MB/s 00:00
[root@elk91 ~]#scp oldboyedu-autoinstall-docker-docker-compose.tar.gz 10.0.0.92:~
root@10.0.0.92's password:
oldboyedu-autoinstall-docker-docker-compose.tar.gz 3.在10.0.0.92服务器安装docker环境
-rw-r--r-- 1 root root 84289454 Apr 8 20:20 oldboyedu-autoinstall-docker-docker-compose.tar.gz
-rw-r--r-- 1 root root 24512000 Apr 8 20:20 oldboyedu-xiuxian-v1.tar.gz
-rw------- 1 root root 24496128 Apr 8 20:20 oldboyedu-xiuxian-v2.tar.gz
-rw-r--r-- 1 root root 2048 Apr 1 22:46 passwd
drwx------ 3 root root 4096 Nov 25 17:58 snap/
[root@elk92 ~]#tar xf oldboyedu-autoinstall-docker-docker-compose.tar.gz
[root@elk92 ~]#./install-docker.sh i
'/usr/bin/containerd' -> '/oldboyedu/softwares/docker/containerd'
'/usr/bin/containerd-shim' -> '/oldboyedu/softwares/docker/containerd-shim'
'/usr/bin/containerd-shim-runc-v2' -> '/oldboyedu/softwares/docker/containerd-shim-runc-v2'
'/usr/bin/ctr' -> '/oldboyedu/softwares/docker/ctr'
'/usr/bin/docker' -> '/oldboyedu/softwares/docker/docker'
'/usr/bin/docker-compose' -> '/oldboyedu/softwares/docker/docker-compose'
'/usr/bin/docker-init' -> '/oldboyedu/softwares/docker/docker-init'
'/usr/bin/docker-proxy' -> '/oldboyedu/softwares/docker/docker-proxy'
'/usr/bin/dockerd' -> '/oldboyedu/softwares/docker/dockerd'
'/usr/bin/runc' -> '/oldboyedu/softwares/docker/runc'
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Client:
Version: 20.10.24
API version: 1.41
Go version: go1.19.7
Git commit: 297e128
Built: Tue Apr 4 18:17:06 2023
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.24
API version: 1.41 (minimum version 1.12)
Go version: go1.19.7
Git commit: 5d6db84
Built: Tue Apr 4 18:23:02 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.6.20
GitCommit: 2806fc1057397dbaeefbea0e4e17bddfbd388f38
runc:
Version: 1.1.5
GitCommit: v1.1.5-0-gf19387a6
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker Compose version v2.23.0
安装成功,欢迎使用尹正杰二进制docker安装脚本,欢迎下次使用!4.在10.0.0.92服务器导入镜像到本地
方式一:
[root@elk92 ~]#docker image load -i oldboyedu-xiuxian-v1.tar.gz
7fcb75871b21: Loading layer [==================================================>] 5.904MB/5.904MB
15d7cdc64789: Loading layer [==================================================>] 18.32MB/18.32MB
5f66747c8a72: Loading layer [==================================================>] 3.072kB/3.072kB
c39c1c35e3e8: Loading layer [==================================================>] 4.096kB/4.096kB
b8dbe22b95f7: Loading layer [==================================================>] 3.584kB/3.584kB
9d5b000ce7c7: Loading layer [==================================================>] 7.168kB/7.168kB
8e2be8913e57: Loading layer [==================================================>] 238.1kB/238.1kB
Loaded image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
[root@elk92 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
方式二:
[root@elk92 ~]#docker image load < oldboyedu-xiuxian-v2.tar.gz
4beb452b2498: Loading layer [==================================================>] 222.2kB/222.2kB
Loaded image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2
[root@elk92 ~]#docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v1 f28fd43be4ad 2 years ago 23MB
registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps v2 d65adc8a2f32 2 years ago 22.9MB二.docker常用的容器管理命令
1.容器的增删改查基础管理
1.查看容器列表
方式一:
[root@elk91 ~]#docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 34 minutes ago Up 34 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
方式二:
[root@elk91 ~]#docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 35 minutes ago Up 35 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
方式三:
[root@elk91 ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 36 minutes ago Up 36 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
2.创建容器并指定名称
[root@elk91 ~]#docker container run --name c1 alpine:3.20.2 #"--name" 给容器起名字
[root@elk91 ~]#docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 41 minutes ago Up 41 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
[root@elk91 ~]#docker container ps -a # "-a"查看所有容器的状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe072fd1b65 alpine:3.20.2 "/bin/sh" About a minute ago Exited (0) About a minute ago c1
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 42 minutes ago Up 42 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
3.创建容器时进行交互
3.1创建容器
[root@elk91 ~]#docker container run -i --name c2 alpine:3.20.2
ls /
bin
dev
etc
home
lib
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:03
inet addr:172.17.0.3 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:726 (726.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
3.2 再开一个终端测试发现c2容器处于运行状态
[root@elk91 ~]#docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b319b22a390e alpine:3.20.2 "/bin/sh" 2 minutes ago Up 2 minutes c2
cfe072fd1b65 alpine:3.20.2 "/bin/sh" 6 minutes ago Exited (0) 6 minutes ago c1
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 47 minutes ago Up 47 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
4.创建容器时分配终端
[root@elk91 ~]#docker container run --name c3 -i -t alpine:3.20.2
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:04
inet addr:172.17.0.4 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:516 (516.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
/ #
5.创建容器时后台运行
[root@elk91 ~]#docker container run --name c4 -i -t -d alpine:3.20.2
83b7602f9ee3b379b92a5e870adee07d9742e2204412bb7ad1c5ecdc1d51a4b1
[root@elk91 ~]#docker container ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
83b7602f9ee3 alpine:3.20.2 "/bin/sh" 29 seconds ago Up 27 seconds c4
6.删除容器
[root@elk91 ~]#docker container rm c2 c3
Error response from daemon: You cannot remove a running container b319b22a390e424877ee7771766a22d8e8a774972b6e5940b6fe57b7546ce50b. Stop the container before attempting removal or force remove
Error response from daemon: You cannot remove a running container 747cb3a70d9d16f83ea4a8665b0a1a1313c388caca488481a59d57ade2a04e91. Stop the container before attempting removal or force remove
PS:容器再运行状态下无法正常删除
方式一:
先停止容器,再删除
[root@elk91 ~]#docker container stop c2 c3
c2
c3
[root@elk91 ~]#docker container rm c2 c3
c2
c3
方式二:
强制删除
[root@elk91 ~]#docker container rm -f c4
c4
[root@elk91 ~]#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe072fd1b65 alpine:3.20.2 "/bin/sh" 18 minutes ago Exited (0) 18 minutes ago c1
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 58 minutes ago Up 58 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
方式三:移除所有处于未运行状态的容器
[root@elk91 ~]#docker container run --name c2 alpine:3.20.2
[root@elk91 ~]#docker container run --name c3 alpine:3.20.2
[root@elk91 ~]#docker container run --name c4 -i alpine:3.20.2
[root@elk91 ~]#docker contairun --name c5 -i -t alpine:3.20.2
[root@elk91 ~]#docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2506b2a095f0 alpine:3.20.2 "/bin/sh" 10 seconds ago Up 9 seconds c5
c1ad9d6d360b alpine:3.20.2 "/bin/sh" 17 seconds ago Up 16 seconds c4
e2ddee8b72dd alpine:3.20.2 "/bin/sh" 32 seconds ago Exited (0) 31 seconds ago c3
fe82be68c12d alpine:3.20.2 "/bin/sh" 53 seconds ago Exited (0) 53 seconds ago c2
cfe072fd1b65 alpine:3.20.2 "/bin/sh" 21 minutes ago Exited (0) 21 minutes ago c1
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
[root@elk91 ~]#docker container prune -f
Deleted Containers:
e2ddee8b72dd1ea33634050d8feddae0d454dcdcc2aad3299d768d0795d18129
fe82be68c12dd930a09d06335c948d4d803b70cea926e7dbeda89f2e10a7a1ec
cfe072fd1b65b1ccd8e576c58685c3cf5824a5f89fc248024f990e0494d01c39
Total reclaimed space: 0B
[root@elk91 ~]#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2506b2a095f0 alpine:3.20.2 "/bin/sh" 11 minutes ago Up 11 minutes c5
c1ad9d6d360b alpine:3.20.2 "/bin/sh" 11 minutes ago Up 11 minutes c4
736cde85ddb5 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:81->80/tcp, :::81->80/tcp xiuxian
方式四:
移除所有的容器
[root@elk91 ~]#docker container ps -a -q
7181779b2488
7e76fdc886d3
2506b2a095f0
c1ad9d6d360b
736cde85ddb5
[root@elk91 ~]#docker container ps -aq
7181779b2488
7e76fdc886d3
2506b2a095f0
c1ad9d6d360b
736cde85ddb5
[root@elk91 ~]#`docker container ps -aq`
7181779b2488: command not found
[root@elk91 ~]#docker container rm -f `docker container ps -aq`
7181779b2488
7e76fdc886d3
2506b2a095f0
c1ad9d6d360b
736cde85ddb5
[root@elk91 ~]#docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES2.容器传递环境变量、日志查看以及连接容器
1.运行容器时传递环境变量
[root@elk91 ~]#docker container run -d --name c1 -e SCHOOL=oldboyedu -e CLASS=linux100 alpine:3.20.2 sleep 60
e63271d140bb807750a709195fbfd1e8402cfa90be488a7bfbf408fb31d51d9d
[root@elk91 ~]#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e63271d140bb alpine:3.20.2 "sleep 60" 13 seconds ago Up 12 seconds c1
在正在运行的容器执行命令
[root@elk91 ~]#docker exec c1 ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:876 (876.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[root@elk91 ~]#docker exec c1 sh
[root@elk91 ~]#docker exec c1 sh
[root@elk91 ~]#docker container run -d --name c1 -e SCHOOL=oldboyedu -e CLASS=linux100 alpine:3.20.2 sleep 60
docker: Error response from daemon: Conflict. The container name "/c1" is already in use by container "e63271d140bb807750a709195fbfd1e8402cfa90be488a7bfbf408fb31d51d9d". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
[root@elk91 ~]#docker container run -d --name c2 -e SCHOOL=oldboyedu -e CLASS=linux100 alpine:3.20.2 sleep 60
20de7cf3dae100715b42b565cf960e58c22e45d85c6561b1ad9dce31d90ae1a8
[root@elk91 ~]#docker exec c2 sh
[root@elk91 ~]#docker exec -it c2 sh
/ # ps -ef
PID USER TIME COMMAND
1 root 0:00 sleep 60
13 root 0:00 sh
19 root 0:00 ps -ef
/ #
/ # [root@elk91 ~]#docker container run -d --name c4 -e SCHOOL=oldboyedu -e CLASS=linux100 alpine:3.20.2 sleep 60
32e3711122be238c8eee768442d7285fa81f684ffb45ff4d10a6205bafd789f9
[root@elk91 ~]#docker exec -it c4 sh
/ # env
CLASS=linux100
HOSTNAME=32e3711122be
SHLVL=1
HOME=/root
TERM=xterm
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SCHOOL=oldboyedu
PWD=/
/ #
/ # [root@elk91 ~]#docker exec -it c4 sh
Error response from daemon: Container 32e3711122be238c8eee768442d7285fa81f684ffb45ff4d10a6205bafd789f9 is not running
[root@elk91 ~]#
3.查看容器的日志
[root@elk91 ~]#docker container run -d --name xixi registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
6301e9c33b15d5b3ab53b2b3879ece7ae0bd425d63133bf5ce2b301002876131
[root@elk91 ~]#docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6301e9c33b15 registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 "/docker-entrypoint.…" 13 seconds ago Up 12 seconds 80/tcp xixi
32e3711122be alpine:3.20.2 "sleep 60" 5 minutes ago Exited (0) 4 minutes ago c4
20de7cf3dae1 alpine:3.20.2 "sleep 60" 7 minutes ago Exited (0) 6 minutes ago c2
e63271d140bb alpine:3.20.2 "sleep 60" 8 minutes ago Exited (0) 7 minutes ago c1
for i in `seq 10`;do curl 172.17.0.2;sleep 3;done # 单独开一个终端执行该命令
[root@elk91 ~]#docker container logs -f xixi
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/04/08 13:33:50 [notice] 1#1: using the "epoll" event method
2026/04/08 13:33:50 [notice] 1#1: nginx/1.20.1
2026/04/08 13:33:50 [notice] 1#1: built by gcc 10.2.1 20201203 (Alpine 10.2.1_pre1)
2026/04/08 13:33:50 [notice] 1#1: OS: Linux 5.15.0-173-generic
2026/04/08 13:33:50 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 524288:524288
2026/04/08 13:33:50 [notice] 1#1: start worker processes
2026/04/08 13:33:50 [notice] 1#1: start worker process 32
2026/04/08 13:33:50 [notice] 1#1: start worker process 33
172.17.0.1 - - [08/Apr/2026:13:36:32 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:35 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:38 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:41 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:44 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:47 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
172.17.0.1 - - [08/Apr/2026:13:36:50 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
面试题:
- 如何查看最近20分钟产生的日志。
[root@elk91 ~]#docker logs -f xixi -t --since 20m
2026-04-08T13:36:32.699823183Z 172.17.0.1 - - [08/Apr/2026:13:36:32 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
2026-04-08T13:36:35.710872857Z 172.17.0.1 - - [08/Apr/2026:13:36:35 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
2026-04-08T13:36:38.718182844Z 172.17.0.1 - - [08/Apr/2026:13:36:38 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
2026-04-08T13:36:41.724683637Z 172.17.0.1 - - [08/Apr/2026:13:36:41 +0000] "GET / HTTP/1.1" 200 357 "-" "curl/7.81.0" "-"
3.项目部署案例
3.1部署mysql服务
1.导入镜像
[root@elk91 ~]#docker image load -i oldboyedu-mysql-v8.0.36-oracle.tar.gz
fc037c17567d: Loading layer [==================================================>] 118.8MB/118.8MB
152c1ecea280: Loading layer [==================================================>] 11.26kB/11.26kB
fb5c92e924ab: Loading layer [==================================================>] 2.359MB/2.359MB
5b76076a2dd4: Loading layer [==================================================>] 13.86MB/13.86MB
a6909c467615: Loading layer [==================================================>] 6.656kB/6.656kB
eaa1e85de732: Loading layer [==================================================>] 3.072kB/3.072kB
9513d2aedd12: Loading layer [==================================================>] 185.6MB/185.6MB
84d659420bad: Loading layer [==================================================>] 3.072kB/3.072kB
876b8cd855eb: Loading layer [==================================================>] 298.7MB/298.7MB
1c0ff7ed67c4: Loading layer [==================================================>] 16.9kB/16.9kB
318dde184d61: Loading layer [==================================================>] 1.536kB/1.536kB
Loaded image: mysql:8.0.36-oracle
2.部署mysql服务
[root@elk91 ~]# docker container run \
> -e MYSQL_ALLOW_EMPTY_PASSWORD="yes" \
> -d \
> --name mysql-server \
> -e MYSQL_DATABASE="wordpress" \
> -e MYSQL_USER="linux102" \
> -e MYSQL_PASSWORD="oldboyedu" \
> mysql:8.0.36-oracle \
> --character-set-server=utf8mb4 \
> --collation-server=utf8mb4_unicode_ci \
> --default-authentication-plugin=mysql_native_password
7ba8132b675fb66dd60e89db0a0ff51a78dba2d247b2b0e40fd2da0ae21ba768
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7ba8132b675f mysql:8.0.36-oracle "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 3306/tcp, 33060/tcp mysql-server
3.连接数据库
[root@elk91 ~]#docker exec -it mysql-server mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.01 sec)
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| linux102 | % | mysql_native_password |
| root | % | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)3.2部署wordpress博客
1.部署mysql服务(暴露端口)
[root@elk91 ~]#docker container run \
> -e MYSQL_ALLOW_EMPTY_PASSWORD="yes" \
> -d \
> -p 3306:3306 \
> --name mysql-server \
> -e MYSQL_DATABASE="wordpress" \
> -e MYSQL_USER="linux102" \
> -e MYSQL_PASSWORD="oldboyedu" \
> mysql:8.0.36-oracle \
> --character-set-server=utf8mb4 \
> --collation-server=utf8mb4_unicode_ci \
> --default-authentication-plugin=mysql_native_password
d333235c5ba8ff97ca71fe14b3e0e979004e30d68f239712ba7f69363f29973d
2.导入wordpress镜像
[root@elk91 ~]#docker image load -i oldboyedu-wordpress-v6.7.1-php8.1-apache.tar.gz
7914c8f600f5: Loading layer [==================================================>] 77.83MB/77.83MB
9d3505e94f88: Loading layer [==================================================>] 3.584kB/3.584kB
cca374cc7ecc: Loading layer [==================================================>] 320.2MB/320.2MB
93531ad2cad2: Loading layer [==================================================>] 5.12kB/5.12kB
76c322751b28: Loading layer [==================================================>] 50.46MB/50.46MB
e1862c15b46e: Loading layer [==================================================>] 9.728kB/9.728kB
41a48fee6648: Loading layer [==================================================>] 7.68kB/7.68kB
683fadaa2d15: Loading layer [==================================================>] 12.42MB/12.42MB
cd29cc24986e: Loading layer [==================================================>] 4.096kB/4.096kB
65ed9c32ccf8: Loading layer [==================================================>] 49.07MB/49.07MB
6a874987401a: Loading layer [==================================================>] 12.8kB/12.8kB
72d18aad6507: Loading layer [==================================================>] 4.608kB/4.608kB
541b75dced10: Loading layer [==================================================>] 4.608kB/4.608kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
dd20169e4636: Loading layer [==================================================>] 69.66MB/69.66MB
7aa076c583ee: Loading layer [==================================================>] 56.58MB/56.58MB
1bd5766fdd49: Loading layer [==================================================>] 5.632kB/5.632kB
fd6f751879ec: Loading layer [==================================================>] 4.608kB/4.608kB
10ffebd37647: Loading layer [==================================================>] 91.65kB/91.65kB
9dfe5f929ccc: Loading layer [==================================================>] 76.94MB/76.94MB
3a7d623958af: Loading layer [==================================================>] 9.216kB/9.216kB
5a91ae3138b2: Loading layer [==================================================>] 6.656kB/6.656kB
Loaded image: wordpress:6.7.1-php8.1-apache
3.3部署wordpress
[root@elk91 ~]#docker container run --name wordpress-server \
> -d \
> -p 81:80 \
> -e WORDPRESS_DB_HOST=10.0.0.91 \
> -e WORDPRESS_DB_USER=linux102 \
> -e WORDPRESS_DB_PASSWORD=oldboyedu \
> -e WORDPRESS_DB_NAME=wordpress \
> wordpress:6.7.1-php8.1-apache
096bf9c451e896cbfdae5ab8284cee5b8fc4be4e833e72990aab6100ef9e6ce9
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
096bf9c451e8 wordpress:6.7.1-php8.1-apache "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:81->80/tcp, :::81->80/tcp wordpress-server
3.4浏览器测试(输入10.0.0.91:81)
3.5查看MySQL容器的表信息
[root@elk91 ~]#docker exec wordpress-server -it mysql-server
OCI runtime exec failed: exec failed: unable to start container process: exec: "-it": executable file not found in $PATH: unknown
[root@elk91 ~]#docker exec -it mysql-server mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.36 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> showdatabases;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'showdatabases' at line 1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+
5 rows in set (0.02 sec)
mysql> use wordpress;
Database changed
mysql> show tables;
Empty set (0.01 sec)
3.3部署elasticsearch单点服务
1.下载镜像
[root@elk91 ~]#docker image pull docker.elastic.co/elasticsearch/elasticsearch:9.3.2
9.3.2: Pulling from elasticsearch/elasticsearch
2f837cbde7be: Pull complete
d70bd96e9f18: Pull complete
5931f9ccffb9: Pull complete
6a5245e6caee: Pull complete
bd9ddc54bea9: Pull complete
aff90b69bbf0: Pull complete
87f3d3ecca1a: Pull complete
0385c2822287: Pull complete
d5fbebb9094a: Pull complete
ed9270ed0fff: Pull complete
Digest: sha256:d2f73c2f05476fe0a528b429656f3de22f3f50db62d3d79ea2c87995f7f4c938
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:9.3.2
docker.elastic.co/elasticsearch/elasticsearch:9.3.2
2.启动容器(部署elasticsearch服务)
[root@elk91 ~]#docker container run --name es01 -p 19200:9200 -d -m 1GB docker.elastic.co/elasticsearch/elasticsearch:9.3.2
4a802f41fe701506d128e6e2e773ff43749828aea38038087e91720f7a1a4cdc
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a802f41fe70 docker.elastic.co/elasticsearch/elasticsearch:9.3.2 "/bin/tini -- /usr/l…" 11 seconds ago Up 10 seconds 9300/tcp, 0.0.0.0:19200->9200/tcp, :::19200->9200/tcp es01
3.访问测试
[root@elk91 ~]#netstat -tunlp | grep 19200
tcp 0 0 0.0.0.0:19200 0.0.0.0:* LISTEN 1963/docker-proxy
tcp6 0 0 :::19200 :::* LISTEN 1972/docker-proxy
[root@elk91 ~]#curl -k https://10.0.0.91:19200
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\", charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\", charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}
温馨提示:
上述报错401是因为没有给定认证信息,因此我们要获取认证信息。
4.重置elastic管理员密码
[root@elk91 ~]#docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]
This tool will reset the password of the [elastic] user to an autogenerated value.
The password will be printed in the console.
Please confirm that you would like to continue [y/N]y
Password for the [elastic] user successfully reset.
New value: SDFaWBGgpQG*6ed*sbb_
5.再次访问测试
[root@elk91 ~]#curl -k -u elastic:SDFaWBGgpQG*6ed*sbb_ https://10.0.0.91:19200;echo
{
"name" : "d9cfc0270128",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "R0HvXPPcQTSkg3V-zXx9Mg",
"version" : {
"number" : "9.3.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "43a703737aab6baefa748bc7b69e4054926f2b2c",
"build_date" : "2026-03-16T13:12:56.143057855Z",
"build_snapshot" : false,
"lucene_version" : "10.3.2",
"minimum_wire_compatibility_version" : "8.19.0",
"minimum_index_compatibility_version" : "8.0.0"
},
"tagline" : "You Know, for Search"
}3.4部署kibana服务
1.下载镜像
[root@elk91 ~]#docker pull docker.elastic.co/kibana/kibana:9.3.2
9.3.2: Pulling from kibana/kibana
2f837cbde7be: Already exists
30256f794aab: Pull complete
13719dd97430: Pull complete
0c9b5ed924a1: Pull complete
076eda5d5a87: Pull complete
76463de8ade8: Pull complete
bd9ddc54bea9: Pull complete
fd2a549d02af: Pull complete
6e58f9d7a7d7: Pull complete
4c8d0f058d3f: Pull complete
89782de37f5f: Pull complete
35dee184e56c: Pull complete
e77eea1cc574: Pull complete
dc451deefb4d: Pull complete
Digest: sha256:cbf27174cf03e9d59505510c540a3e1ac69718fc863728280f316a93248cead9
Status: Downloaded newer image for docker.elastic.co/kibana/kibana:9.3.2
docker.elastic.co/kibana/kibana:9.3.2
2.启动容器
[root@elk91 ~]#docker run -d --name kibana-server -p 15601:5601 docker.elastic.co/kibana/kibana:9.3.2
b26b1962913fdcdb7f4edc8a5cc1a7dfab4950a2025016d6e730c9fae04a87e4
[root@elk91 ~]#docker container ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b26b1962913f docker.elastic.co/kibana/kibana:9.3.2 "/bin/tini -- /usr/l…" 9 seconds ago Up 8 seconds 0.0.0.0:15601->5601/tcp, :::15601->5601/tcp kibana-server
3.elasticsearch生成token
[root@elk91 ~]#docker container exec -it es01 bash
[elasticsearch@d9cfc0270128 ~]$ /usr/share/elasticsearch/bin/elasticsearch
elasticsearch elasticsearch-geoip elasticsearch-setup-passwords
elasticsearch-certgen elasticsearch-keystore elasticsearch-shard
elasticsearch-certutil elasticsearch-node elasticsearch-sql-cli
elasticsearch-cli elasticsearch-plugin elasticsearch-sql-cli-9.3.2.jar
elasticsearch-create-enrollment-token elasticsearch-reconfigure-node elasticsearch-syskeygen
elasticsearch-croneval elasticsearch-reset-password elasticsearch-users
elasticsearch-env elasticsearch-saml-metadata
elasticsearch-env-from-file elasticsearch-service-tokens
[elasticsearch@d9cfc0270128 ~]$ /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTcyLjE3LjAuMzo5MjAwIl0sImZnciI6IjdkNzYxMGNlNTAxM2FjMmRjNTc5YzIyNTE1MDBlMzFlYmRmYWYzNzBiMzlkMWZiOGI3NDVmZGQ5NTQ0YmJlNTEiLCJrZXkiOiJWeVpGY0owQkFWZDFVaWJYT3FlZDpJWHBENkg0WGJUN1lXeWxVOFd0Z3JnIn0=
4.访问kibana的webUI【如下图所示,访问时需要输入上一步的token】
http://10.0.0.91:15601/

5.kibana生成校验码
[root@elk91 ~]#docker container exec -it kibana-server bash
bash-5.1$
Display all 322 possibilities? (y or n)
bash-5.1$ kibana-verification-code
Your verification code is: 177 593
bash-5.1$ exit
exit

6.验证密码登录


7.修改成中文界面
[root@elk91 ~]#docker exec -it kibana-server bash
bash-5.1$ echo i18n.locale: "zh-CN" >> config/kibana.yml
bash-5.1$ exit
exit
[root@elk91 ~]#docker container restart kibana-server
kibana-server

8.重置超级管理员密码

3.5部署Redis服务
1.导入镜像
[root@elk91 ~]#docker image load -i oldboyedu-redis-v7.2.8.tar.gz
08000c18d16d: Loading layer [==================================================>] 8.121MB/8.121MB
5eb48cee65ab: Loading layer [==================================================>] 10.75kB/10.75kB
80a02d377c0e: Loading layer [==================================================>] 922.6kB/922.6kB
e19019c8f17e: Loading layer [==================================================>] 2.418MB/2.418MB
c581187f88c5: Loading layer [==================================================>] 30.21MB/30.21MB
a738c5aa361f: Loading layer [==================================================>] 1.536kB/1.536kB
5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB
4d7066b0e143: Loading layer [==================================================>] 4.096kB/4.096kB
Loaded image: redis:7.2.8-alpine3.21
2.启动容器
[root@elk91 ~]#docker container run -d --name redis-server -p 6379:6379 redis:7.2.8-alpine3.21
7a9a3da5e996277f97c6449aee772495ea6e8e0fd0eb27490878dc759b2a3ccc
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a9a3da5e996 redis:7.2.8-alpine3.21 "docker-entrypoint.s…" 9 seconds ago Up 8 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis-server
3.测试验证
[root@elk91 ~]#docker container exec -it redis-server sh
/data # redis-cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set ip 10.0.0.91
OK
127.0.0.1:6379> get ip
"10.0.0.91"
3.6部署Skywalking
1.部署elasticsearch环境(7.17.25版本)
[root@elk91 ~]#docker container run -d --name es7-server -p 19200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.25
344c8cd7d3e0254c67ca1f831110bdef06ab0cdc441cbf0be4e8a781fb00d842
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
344c8cd7d3e0 docker.elastic.co/elasticsearch/elasticsearch:7.17.25 "/bin/tini -- /usr/l…" 7 seconds ago Up 6 seconds 9300/tcp, 0.0.0.0:19200->9200/tcp, :::19200->9200/tcp es7-server
[root@elk91 ~]#netstat -tunlp | grep 19200
tcp 0 0 0.0.0.0:19200 0.0.0.0:* LISTEN 8002/docker-proxy
tcp6 0 0 :::19200 :::* LISTEN 8009/docker-proxy
1.1 测试部署是否成功
[root@elk91 ~]#curl 10.0.0.91:19200
{
"name" : "344c8cd7d3e0",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "ia5lhRdnSd2Piift4OHDPQ",
"version" : {
"number" : "7.17.25",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "f9b6b57d1d0f76e2d14291c04fb50abeb642cfbf",
"build_date" : "2024-10-16T22:06:36.904732810Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[root@elk91 ~]#curl 10.0.0.91:19200/_cat/nodes
172.17.0.2 4 98 6 0.10 0.14 0.09 cdfhilmrstw * 344c8cd7d3e0
2.部署skywalking-oap-server
2.1 导入镜像到本地
[root@elk91 ~]#docker image load -i oldboyedu-skywalking-oap-server-v10.2.0-java21.tar.gz
4b7c01ed0534: Loading layer [==================================================>] 80.65MB/80.65MB
55f0856f15bc: Loading layer [==================================================>] 45.77MB/45.77MB
21c5f72745e2: Loading layer [==================================================>] 164.8MB/164.8MB
ca07f7531821: Loading layer [==================================================>] 2.56kB/2.56kB
f17dac05f171: Loading layer [==================================================>] 7.168kB/7.168kB
aaab2e558837: Loading layer [==================================================>] 1.536kB/1.536kB
304900db24f7: Loading layer [==================================================>] 155.7MB/155.7MB
65294e40a50d: Loading layer [==================================================>] 136.6MB/136.6MB
f36f770a0943: Loading layer [==================================================>] 4.096kB/4.096kB
541773ae93bb: Loading layer [==================================================>] 3.584kB/3.584kB
536e8e9279e5: Loading layer [==================================================>] 2.56kB/2.56kB
Loaded image: apache/skywalking-oap-server:10.2.0-java21
2.2启动容器(部署skywalking-oap-server)
[root@elk91 ~]#docker run --name oap-server \
> -d -e SW_STORAGE=elasticsearch \
> -p 12800:12800 \
> -e SW_STORAGE_ES_CLUSTER_NODES=10.0.0.91:19200 \
> apache/skywalking-oap-server:10.2.0-java21
c65df88a744740a227aef232820840390fb1b805d2de8c300e8b4b8f710e9cb9
[root@elk91 ~]#docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b297319cb861 apache/skywalking-oap-server:10.2.0-java21 "bash docker-entrypo…" 5 minutes ago Up 5 minutes 1234/tcp, 11800/tcp, 0.0.0.0:12800->12800/tcp, :::12800->12800/tcp oap-server
2.3部署skywalking-ui
[root@elk91 ~]#docker container run -d --name oap-ui -e SW_OAP_ADDRESS=http://10.0.0.91:12800 -p 8080:8080 apache/skywalking-ui:10.2.0-
84c8cdbb24beef324829954de56f9072a73bde33e23c8529f109ad42caf39f13
2.4验证数据是否写入ES环境
[root@elk91 ~]# curl 10.0.0.91:19200/_cat/indices
green open sw_zipkin_span-20260409 7Cvt07UXQJ6YE-DR6MrMYw 5 0 0 0 1.1kb 1.1kb
yellow open sw_metrics-all-20260409 zA3zi5M_SGyu-Mt9zoLqfg 1 1 0 0 227b 227b
green open sw_segment-20260409 xMyqRkYkSG-rBtrIPSPsCg 5 0 0 0 1.1kb 1.1kb
yellow open sw_management ZiFAoK4CQWmXdLPYYWz-Ng 1 1 123 0 334.3kb 334.3kb
yellow open sw_records-all-20260409 YPBzTBgVQBGYk1hjEO7jDQ 1 1 0 0 227b 227b
green open sw_log-20260409 oZC3YzFnSjGdvfU4YDWeGQ 5 0 0 0 1.1kb 1.1kb
green open sw_browser_error_log-20260409 VXZRKNULRpG5_AlbB6JJsg 5 0 0 0 1.1kb 1.1kb
2.5访问skywalking的webUI 10.0.0.91:8080
如下如所示: