0、docker 安装的大体流程(使用nacos作为示例)
1. 现在 hub.docker.com 中查询镜像的 TAG 版本,如果安装最新版本,这步不用管;
2. 下载镜像,这里使用 nacos 举例
指定版本:docker pull nacos/nacos-server:v2.23
最新版本:docker pull nacos/nacos-server
3. 查看镜像是否下载成功
docker images
4. 将 docker 镜像的配置文件、日志文件等挂载到主机上,在修改配置文件、查看日志时就不需要进入容器内部再看了
首先启动nacos镜像:
docker run -d --name nacos -p 8848:8848 -e MODE=standalone nacos/nacos-server
将nacos文件拷贝到主机上的/app目录下
docker cp nacos:/home/nacos /usr/local
删除这个nacos容器
docker rm -f nacos
5. 重新创建 nacos 容器:
docker run -d --name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/data:/home/nacos/data \
-v /mydata/nacos/config:/home/nacos/config \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST={mysql IP 地址} \
-e MYSQL_SERVICE_DB_NAME={数据库名称} \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD={mysql密码} \
nacos/nacos-server
这里还遇到一个很奇怪的问题:
docker: invalid reference format: repository name must be lowercase.
大概意思是:
docker:引用格式无效:存储库名称必须小写。
后面经过多次尝试,将每一个 '\' 前面都加了一个空格,才执行成功,太坑了!!
6. 查看启动容器启动日志
使用 docker ps -a 查看容器状态,如果启动失败,可以使用
docker logs 容器名称
查看启动日志,从而解决问题!
1、docker 安装
docker pull 名称:版本号
示例:docker pull mysql:5.7
2、docker 镜像查看
docker images:查看 docker 下载过的镜像文件
3、docker 镜像创建、启动、文件映射
示例:
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
【docker run -p 3306:3306】:前面的 3306 是 Linux 系统中的 port,后面的 3306 是 docker 容器中的 port;
【--name mysql】:给这个容器起个名字;
【-v /mydata/mysql/log:/var/log/mysql】:-v 就是文件映射,冒号前面的是 Linux 系统中的目录,冒号后面是 docker 容器中的目录;
【-d mysql:5.7】:-d 是启动命令,mysql 是下载的 images 的名称;注意,一定要加版本号,不然有可能下载个最新版本启动;
4、进入 docker 容器内部
docker exec -it 容器名称 bash
示例:docker exec -it mysql bash
退出容器命令:exit
5、查看已经启动的容器
docker ps -a:所有创建过的容器,停止运行的容器可以从该命令中看到;
docker ps:正在运行的容器;
6、停止、删除、重启指令
docker stop 容器名称:停止正在运行的容器
docker rm 容器名称:删除 docker 容器
docker rmi 容器名称:删除 docker 镜像
docker restart 容器名称:重启 docker 容器
示例:
docker stop mysql
docker rm mysql
docker rmi mysql
docker restart mysql
7、查看 docker 容器中的日志
docker logs 容器名称
示例:docker logs mysql
8、查看 docker 容器对应的 ip
docker inspect 容器名称
示例:
docker inspect es
9. docker 查看想要下载的镜像版本号
想要查看 TAG 版本号,可以在 docker hub 上查看;
https://hub.docker.com