Docker 常用安装

33 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

安装步骤梳理

image.png

  1. 搜索镜像
  2. 拉取镜像
  3. 查看镜像
  4. 启动镜像
  5. 停止容器
  6. 移除容器

安装tomcat

  • docker hub好查找tomcat镜像 docker search tomcat
  • 从docker hub上拉取tomcat镜像到本地 docker pull tomcat
  • 使用 docker images 查看是否有拉取到tomcat
  • 使用 tomcat 镜像运行镜像成为容器

docker run -it -p 8080:8080 tomcat

  • p 主机端口:容器端口
  • P 随机分配端口
  • i 交互
  • t 终端

安装mysql

  • docker hub上查找mysql镜像 docker search mysql image.png
  • docker hub上拉取mysql镜像到本地 docker pull mysql:5.7 image.png
  • 使用mysql5.7镜像创建容器运行存在问题 image.png
  • 这是因为mysql镜像一启动中在加设置用户名和密码
  • 修改成下面的命令

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 image.png

使用navcat连接一下

如果是5.7的数据库不会报错,发现报错,这是因为docker 的mysql里面的localhost -root 的密码是启动时设置的是123456现%-root的没有设置,下面是解决方法

image.png

1, 进入mysql的docker 容器 docker exec -it mysql /bin/bash

2,登陆mysql mysql -u root -p 输入密码

3,使用mysql数据库 use mysql

4,执行修改密码的命令 update user set password=password(123456) where host='%'

5,重启mysql的docker 容器

  • exit退出
  • exit退出mysql容器
  • docker restart mysql

再就可以进行远程连接了哦

如果出现使用宿主机IP无法访问的情况 在宿主机里面执行如下命令,请顺序运行以下命令:

  • nmcli connection modify docker0 connection.zone trusted
  • systemctl stop NetworkManager.service
  • firewall-cmd --permanent --zone=trusted --change-interface=docker0
  • systemctl start NetworkManager.service
  • nmcli connection modify docker0 connection.zone trusted
  • systemctl restart docker.service

再重启mysql和tomcat的容器

相关文件地址配置

  • 可以在运行容器时设置 :

docker run -p 3306:3306 --name mysql -v PWD/conf/my.cnf:/etc/mysql/my.cnf -v PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql

但要求对应路径对应文件已存在,才能成功挂载相内容到对应位置。 命令说明:

  • p 3306:3306:将容器的3306端口映射到主机的3306端口
  • v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
  • v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
  • v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
  • e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码