docker配置学习
yatbfm

安装docker

  1. 更新软件库确保可以访问最新版。
1
sudo apt update
  1. 卸载旧版本
1
sudo apt-get remove docker docker-engine docker.io
  1. 安装软件库中的docker
1
sudo apt install docker.io
  1. 设置自启动
1
2
sudo systemctl start docker
sudo systemctl enable docker

其他安装方法的可以参考官方文档Install Docker Engine on Ubuntu | Docker Docs

拉取Redis镜像并运行

以拉取redis镜像为例。

  1. 拉取

使用命令sudo docker pull redis:6.2拉取tag6.2redis镜像。

不指定tag则默认为latest,若要查看所有tag可以使用命令sudo docker search redis查看。或者在Docker Hub Container Image Library | App Containerization中查找。

  1. 准备redis.conf

在redis官网Redis configuration | Redis找到对应版本的默认配置。创建redis.conf文件。

并修改

1
2
bind 127.0.0.1 注释
将protected-mode yes修改为 protected-mode no
  1. 运行
1
sudo docker run -d -v /home/username/software/redis:/usr/local/etc/redis -p 36379:6379 --name myredis redis:6.2 redis-server /usr/local/etc/redis/redis.conf

其中/home/username/software/redis目录下有redis.conf文件。

这段命令中-d是后台运行容器。

-v /home/username/software/redis:/usr/local/etc/redis是将/home/username/software/redis目录挂载到/usr/local/etc/redis目录下,因为redis容器运行时不会生成redis.conf配置文件,以默认配置运行,需要运行时手动挂在自定义配置。

-p 36379:6379是端口映射,将宿主机36379段口映射到容器的6379端口。

--name myredis指定容器名字为myredis

redis:6.2为运行的镜像名字:tag。

redis-server /usr/local/etc/redis/redis.conf为运行容器后执行的命令,此命令是让redis服务器以/usr/local/etc/redis/redis.conf配置文件运行。

拉取mysql并运行

拉取mysql:8.2镜像

1
docker pull mysql:8.2

运行镜像,同redis一样,需要指定挂载目录,将自己的配置文件放在本地目录,挂载到容器中相应的目录中。

其中挂载到哪个目录可以通过官方文档查看。

1
2
3
4
5
6
7
8
docker run -d \
--name mymysql1 \
-p 33306:3306 \
-v /home/clab/software/mysql/conf:/etc/my.cnf.d \
-v /home/clab/software/mysql/data:/var/lib/mysql \
-v /home/clab/software/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=password \
mysql:8.2

如果启动后就退出,使用命令docker logs mymysql1查看日志。

出现

1
ERROR] Could not open file '/var/log/mysql/error.log' for error logging: Permission denied

这种权限报错,原因是启动容器中的mysql用户和宿主机不同,导致权限问题。此时可以使用命令cat /etc/group查看宿主机的user_id

获取后在执行命令时添加参数--user user_id即可。如果仍出现问题,将宿主机datalog文件夹删除再新建(可能之前的运行会导致这两个文件夹用户权限发生变化)。

参考链接:分析docker启动MySQL挂载目录提示权限不足Permission denied原因_docker挂载目录权限问题_jiangyunfan16的博客-CSDN博客

由 Hexo 驱动 & 主题 Keep
访客数 访问量