Docker快速安装软件

直接安装的缺点

  • 安装麻烦,可能有各种依赖,运行报错。例如:WordPress,ElasticSearch,Redis,ELK
  • 可能对 Windows 并不友好,运行有各种兼容问题,软件只支持 Linux 上跑
  • 不方便安装多版本软件,不能共存。
  • 电脑安装了一堆软件,拖慢电脑速度。
  • 不同系统和硬件,安装方式不一样

Docker 安装的优点

  • 一个命令就可以安装好,快速方便
  • 有大量的镜像,可直接使用
  • 没有系统兼容问题,Linux 专享软件也照样跑
  • 支持软件多版本共存
  • 用完就丢,不拖慢电脑速度
  • 不同系统和硬件,只要安装好 Docker 其他都一样了,一个命令搞定所有

演示 Docker 安装 Redis

Redis 官网:https://redis.io/

官网下载安装教程只有源码安装方式,没有 Windows 版本。想要自己安装 windows 版本需要去找别人编译好的安装包。

Docker 官方镜像仓库查找 Redis :https://hub.docker.com/

Docker镜像官网

一个命令跑起来:docker run -d -p 6379:6379 --name redis redis:latest

  1. docker run:这是 Docker 的基本命令,用于从指定的镜像启动一个新的容器。
  2. -d:这个标志告诉 Docker 在后台以“分离”模式运行容器。这意味着容器将在后台启动,并且不会将容器的输出直接发送到你的终端。相反,你可以使用 docker logs 命令来查看容器的输出。
  3. -p 6379:6379:这是端口映射的标志。它告诉 Docker 将宿主机的 6379 端口映射到容器的 6379 端口。这样,当你访问宿主机的 6379 端口时,实际上你是在访问容器的 6379 端口。这对于让外部系统能够访问容器内的服务(如 Redis)是必要的。
  4. --name redis:这个标志为容器指定一个名称,这里是 redis。给容器命名可以让你更容易地引用和管理它,比如使用 docker stop redis 来停止这个容器。
  5. redis:latest:这是你要基于的 Docker 镜像的名称和标签。redis 是镜像的名称,而 latest 是标签,它表示你希望使用 Redis 的最新版本。Docker 会从 Docker Hub 或你配置的其他镜像仓库中拉取这个镜像(如果本地没有缓存的话),并基于这个镜像来启动容器。

命令参考:https://docs.docker.com/engine/reference/commandline/run/

Docker运行Redis后

安装 Wordpress

docker-compose.yml

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
version: '3.1'

services:

wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html

db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql

volumes:
wordpress:
db:

然后PowerShelldocker-compose.yml文件同目录下执行docker-compose up -d

安装 ELK

1
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --name elk sebp/elk

内存不够解决方法

转到用户目录 cd ~,路径类似这个:C:\Users\<UserName>

创建 .wslconfig 文件填入以下内容

1
2
3
[wsl2]
memory=10GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors

生效配置,命令行运行 wsl --shutdown

更多相关命令

docker ps 查看当前运行中的容器

docker images 查看镜像列表

docker rm container-id 删除指定 id 的容器

docker stop/start container-id 停止/启动指定 id 的容器

docker rmi image-id 删除指定 id 的镜像

docker volume ls 查看 volume 列表

docker network ls 查看网络列表

Linux Docker安装软件

搜索镜像

1
docker search nginx
  • 功能:在 Docker Hub 上搜索与 nginx 相关的镜像。

拉取镜像

1
docker pull nginx
  • 功能:从 Docker Hub 拉取官方的 nginx 镜像。

查看镜像

1
docker images
  • 功能:列出本地主机上所有可用的 Docker 镜像。

运行容器

1
docker run -d --name nginx-app -p 80:80 nginx
  • 功能:在后台启动一个新的 nginx 容器,命名为 nginx-app,并将容器的 80 端口映射到主机的 80 端口。
  • 解疑:即使没有预先使用 docker pull 命令拉取 nginx 镜像,Docker 仍然能够成功运行 nginx 容器的原因在于 Docker 的自动镜像拉取机制。本地没有该镜像,Docker 会自动从配置的镜像仓库(默认为 Docker Hub)上拉取所需的镜像。
1
docker run -d --name nginx-app -p 80:80 --restart always nginx
  • 功能:它添加了一个 --restart always 参数。这个参数指定了一个重启策略,即无论容器退出的原因是什么(除了手动停止或删除容器),Docker 都会尝试重新启动它

查看容器状态

1
docker ps
  • 功能:查看当前正在运行的容器。
1
docker ps -a
  • 功能:查看所有容器(包括正在运行和已停止的)。

管理容器生命周期

1
docker start nginx-app
  • 功能:启动已停止的名为 nginx-app 的容器。
1
docker stop nginx-app
  • 功能:停止正在运行的名为 nginx-app 的容器。
1
docker restart nginx-app
  • 功能:重启名为 nginx-app 的容器。

删除容器

1
docker rm nginx-app
  • 功能:删除名为 nginx-app 的容器(如果容器正在运行,则命令会失败)。
1
docker rm -f nginx-app
  • 功能:强制删除名为 nginx-app 的容器,即使它正在运行。

删除镜像

1
docker rmi nginx
  • 功能:删除名为 nginx 的 Docker 镜像。

总结

  1. 搜索:使用 docker search 查找所需的镜像。
  2. 拉取:使用 docker pull 拉取镜像到本地。
  3. 查看:使用 docker images 查看本地所有镜像。
  4. 运行:使用 docker run 运行容器,并配置相关参数。
  5. 查看状态:使用 docker ps 查看运行中的容器,docker ps -a 查看所有容器。
  6. 管理生命周期:使用 docker startdocker stopdocker restart 控制容器的启动、停止和重启。
  7. 删除:使用 docker rm 删除容器,docker rmi 删除镜像。如果需要强制删除,可以使用 -f--force 选项。

请注意,始终确保在删除容器或镜像之前,您不再需要它们,或者已经备份了重要数据,以避免数据丢失。

文笔流畅美,点赞纷至来;

内容引入胜,分享乐开怀;

佳作值得赏,打赏表心怀。