本文章基于centos7,默认已经安装过docker,可以配置国内镜像源
1.docker常用命令
- docker的启动和停止
systemctl start docker
systemctl stop docker
- 看Docker版本
docker version
- 从Docker文件构建Docker映像
docker build -t image-name docker-file-location
#-t:它用于指定使用提供的名称来标记Docker映像。
- 运行Docker映像
docker run -d image-name
#-d:用于创建守护程序进程。
- 查看可用的Docker映像
docker images
- 查看最近的运行容器
docker ps -l
#-l:它用于显示最新的可用容器。
- 查看所有正在运行的容器
docker ps -a
#-a:它用于显示所有可用的容器。
- 启动容器
docker start id
#id:容器的id
- 停止运行容器
docker stop container_id
#container_id:由Docker分配给容器的Id。
- 删除一个映像
docker rmi image-name
- 删除所有映像
docker rmi $(docker images -q)
- 强制删除所有映像
docker rmi -r $(docker images -q)
#-r:用于强制删除映像。
- 删除所有容器
docker rm $(docker ps -a -q)
- 进入Docker容器
docker exec -it container-id bash
2.docker安装mysql并设置远程连接
- 拉取镜像
docker pull mysql:5.7.28
#后面是版本号,不写默认拉取最新
- 创建容器
docker run -di --name=misiai_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28
# --name 是生成容器名
# -p 代表端口映射,格式为 宿主机映射端口:容器运行端口
# -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登陆密码
- 进入刚才创建的容器
docker exec -it misiai_mysql bash
# misiai_mysql为容器名
- 登录MySQL
mysql -uroot -p
- 修改数据库的权限为所有而不是root用户
grant all on *.* to 'root'@'%';
- 最重要的一步 刷新权限
flush privileges;
- 宿主机连接,查看虚拟机ip,然后进行外部连接
ifconfig
# 或者用ip addr,通常是第二个中的ip,比如192.168.xx.xxx
8.指定外部配置文件运行 参考
docker run --name mysql56 -p 3306:3306 -v /home/mysql56/data:/var/lib/mysql -v /home/mysql56/conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=1qa2ws -d mysql:5.6.21
-v /home/mysql56/conf:/etc/mysql 指定本地目录/home/mysql56/conf映射到docker镜像的/etc/mysql, 这样就可以在/home/mysql56/conf目录下建立配置文件my.cnf,并使之起作用.
-v /home/mysql56/data:/var/lib/mysql 把镜像数据库路径映射到本地的/home/mysql56/data
3.docker安装redis并设置远程连接
- 拉取镜像
docker pull redis
- 创建容器
docker run -p 6379:6379 --name redis -d redis:latest --requirepass "123456"
#使用docker run创建并启动容器
#--requirepass 设置连接redis的密码
- 登录redis
docker exec -it redis redis-cli -a 123456
# 没有设置密码的话,不用写后面的 -a
- 退出redis,使用快捷键 ctrl + d