1.下载镜像文件mysql 默认下载最新版本源
docker pull mysql
2.docker search mysql 可以查看mysql 源
3.查看docker image :
docker images |grep mysql
4.检查容器存在情况:
docker ps
[root@hostuser dockerdir]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2d855cae15b mysql "docker-entrypoint.s…" 8 minutes ago Up 8 minutes 3306/tcp, 33060/tcp, 0.0.0.0:3307->3307/tcp mysql2
4.docker logs containername/containerid
5.创建容器并指定port,由于本机docker 已经安装了一个会出现conflinct container ,解决方案删除已经存在的mysql container根据提示 docker rm containerid
- 官网可查看更多命令:https://docs.docker.com/engine/reference/commandline/docker/
- 也可以从 docker Hub 官网:https://hub.docker.com/上查看镜像的同时查看它的命令
删除指令
docker rm d17fb872234815377476a92236269b01e9448de207e0a4c6e69064007ad60fa1
#启动docker run --name mysql2 -p 3307:3307-e MYSQL_ROOT_PASSWORD=Lzslov123!-d mysql
#进入容器docker exec-it mysql bash
#登录mysqlmysql -u root -p
ALTER USER 'root'@'localhost'IDENTIFIED BY 'Lzslov123!';
#添加远程登录用户CREATE USER 'liaozesong'@'%'IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';GRANT ALL PRIVILEGES ON *.*TO 'liaozesong'@'%';
运行容器
- 使用命令:docker run --name container-name:tag -d image-name
- --name:自定义容器名,不指定时,docker 会自动生成一个名称
- -d:表示后台运行容器
- image-name:指定运行的镜像名称以及 Tag
端口映射
使用命令:docker run --name container-name:tag -d -p 服务器端口:Docker 端口 image-name
--name:自定义容器名,不指定时,docker 会自动生成一个名称
-d:表示后台运行容器
image-name:指定运行的镜像名称以及Tag
-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问
服务器防火墙先开放了 8080、8090 端口,否则防火墙不开放端口的话,从其它电脑也是无法访问服务器的
然后 运行了 两个容器,容器名称分别指定为 "myTomcat1"、"myTomcat2"、两个容器中都是同一个 docker.io/tomcat:8.5.32 镜像
两个容器都指定了端口映射,分别是8080、8090 ,都会转发到 Docker 容器内部