docker search mysql
docker pull mysql:5.7
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=d_mysql5 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
docker inspect 容器名
docker inspect 容器ID | grep Mounts -A 50
如下图 source 属性值
*** 5.7版本正常现在就可以远程连接了,如果不行请进入如下配置远程*** 4. 进入容器,操作mysql,配置远程连接
docker exec –it c_mysql5 /bin/bash
这个时候navicat远程连接mysql的时候,会提示以下错误:
解决方法: 1、在虚拟机中登录到mysql容器,然后进入mysql
docker exec -it c_mysql /bin/bash
mysql -uroot -p
Enter password:
mysql> select host,user,plugin,authentication_string from mysql.user;
备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
2、修改navicat工具远程登录密码
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
mysql> select host,user,plugin,authentication_string from mysql.user;
出现上述图片,再次用navicat远程连接mysql就成功了。
mysql> use mysql;
mysql> ALTER USER USER() IDENTIFIED BY '新密码';
mysql> flush privileges;
#cd到新建的mysql目录下
mkdir mysql
cd mysql
docker run -id \
-p 3306:3306 \
--name=d_mysql8 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
- 参数说明:
- **-p 3307:3306**:将容器的 3306 端口映射到宿主机的 3307 端口。
- **-v $PWD/conf:/etc/mysql/conf.d**:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
- **-v $PWD/logs:/logs**:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
- **-v $PWD/data:/var/lib/mysql** :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
- **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
#进入mysql容器
docker exec -it d_mysql /bin/bash
#登录mysql,密码就是刚刚设置的123456
mysql -uroot -p
#下面开始设置远程root密码并运行远程访问
mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
*** 注意:*** 如果登录报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 那么使用 mysql -h 127.0.0.1 -p 先登录一下生成mysqld.sock即可。或者退出到主机中重启该容器再进入试一下
navicat远程连接mysql就成功了。
到此可以远程登录mysql了!
docker search tomcat
docker pull tomcat
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
参数说明:
**-p 8080:8080:**将容器的8080端口映射到主机的8080端口
**-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps
docker search nginx
docker pull nginx
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
docker search redis
docker pull redis:5.0
sudo docker run -id -p 6379:6379 --name=d_redis7 -v /home/yesun/cgh/redis/data:/data redis:5.0 --requirepass 123456
将 宿主机/home/yesun/cgh/redis/data 目录映射到redis容器data目录 --requirepass 123456 设置redis密码123456 可以运行 redis-cli -v 查看版本 4. 登录redis
docker exec -it c_redis /bin/bash
#再进入redis-cli所在目录运行redis-cli使用密码登录
cd /usr/local/bin
redis-cli
127.0.0.1:6379>auth 123456
修改密码: (1)查看现有的redis密码:config get requirepass
(2)设置redis密码config set requirepass ****(****为你要设置的密码)
(2)若出现(error) NOAUTH Authentication required.错误,则使用 auth 密码 来认证密码
./redis-cli.exe -h 192.168.149.135 -p 6379
或者用:RedisDesktopManager工具连接
docker pull mongo
mkdir -p mongodb/data
docker run -d -p 27017:27017 -v mongodb/data:/data/db --name d_mongo mongo
参数介绍
-d: 表示后台执行
-v: 将容器/data/db存储目录映射到宿主机 mongodb/data目录
如果启动的时候没有创建/data/db 则会启动失败
-name 容器的名字
docker exec -it d_mongo /bin/bash
root@ubuntu16:~# docker exec -it d_mongo4 /bin/bash
root@cfd0ab99006d:/# mongo
MongoDB shell version v4.4.22
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("9863b911-96c4-4212-b630-b3bd5a28236f") }
MongoDB server version: 4.4.22
> use admin
switched to db admin
>
然后设置账号和密码
db.createUser({ user:'你的用户名',pwd:'你的密码',roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
示例:
db.createUser({ user:'admin',pwd:'123456',roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
设定好账号密码 和对应的库后,我们就可以远程连接
5.远程连接(工具Navicat for MongoDB)