总体步骤
name:镜像名称、ID:容器ID
- 搜索镜像:docker search name
- 拉取镜像:docker pull name
- 查看镜像:docker images
- 启动镜像: docker run -d -p 5000:5000 name
- 停止容器:docker stop name
- 移除容器:docker rm -f ID
安装 Tomcat
- 直接运行镜像省去 搜索镜像、拉取镜像、查看镜像的步骤
- 159.223.160.164 是主机
- 2f6f2890da2d 是容器ID
含义 | 命令 |
---|---|
运行镜像 | docker run -d -p 8080:8080 --name="tomcat" tomcat |
进入 tomcat 容器 | docker exec -it 2f6f2890da2d bash |
将 webapps.dist 的内容拷贝到 webapps | rm -r webapps 、mv webapps.dist webapps |
访问 tomcat | http://159.223.160.164:8080/ |
安装 MySQL
- 按照 docker hub 上的命令来安装 MySQL
含义 | 命令 |
---|---|
运行镜像(后台运行、端口映射、名称、运行环境、添加数据卷映射) | docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -v /hshuo/mysql/log:/var/log/mysql -v /hshuo/mysql/data:/var/lib/mysql -v /hshuo/mysql/conf:/etc/mysql/conf.d mysql:5.7 |
进入conf文件 并 修改字符集编码 | |
重启 MySQL 容器 | docker restart mysql |
进入 MySQL 容器 | docker exec -it dd0507571b80 bash |
进入 MySQL | mysql -u root -p |
查看字符集编码 | show variables like 'character%'; |
Navicat 测试连接 | IP:159.223.160.164、pd:123456 |
容器卷
- 保证数据持久化、失误删除容器后启动容器数据仍在
名称 | 命令 |
---|---|
删除容器 | docker rm -f c5e2a31cca83 |
重新运行 MySQL、数据仍在 | docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 --privileged=true -v /hshuo/mysql/log:/var/log/mysql -v /hshuo/mysql/data:/var/lib/mysql -v /hshuo/mysql/conf:/etc/mysql/conf.d mysql:5.7 |
字符集编码
- 为了避免中文乱码问题
名称 | 图片 |
---|---|
修改前 | |
修改后 |
安装 Redis
含义 | 命令 |
---|---|
新建目录 /app/redis | mkdir -p /data/redis; |
拷贝一份 redis.conf 到 /app/redis | vim redis.conf |
运行 redis 容器,让 redis-server 运行容器内部的 redis.conf 文件 | docker run -p 6379:6379 --name redis --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf |
如果出现错误,redis 启动不了,尝试查看日志 | docker logs bbaacc063dc0 |
进入 redis 容器 | docker exec -it bbaacc063dc0 bash |
测试 redis-cli 连接成功 | redis-cli |
修改原始的redis.conf文件
- 允许redis外地连接,注释掉 # bind 127.0.0.1
- 防止与docker run -d 参数冲突导致容器一直启动失败,将 daemonize yes 修改为 no
- redis.conf源文件
安装 MinIO
- Docker 安装 Minio 报错处理
- 客户端访问端口:9090,服务端连接端口:9001
名称 | 命令 |
---|---|
安装命令 | docker run -p 9001:9001 -p 9090:9090 --name minio -d --restart=always -e "MINIO_ROOT_USER=minio" -e "MINIO_ROOT_PASSWORD=12345678" -v /hshuo/minio/data:/data -v /hshuo/minio/config:/root/.minio minio/minio server /data --console-address ":9090" --address ":9001" |
- 安装成功后访问:ip + 9090
安装 MongoDB
名称 | 命令 |
---|---|
安装命令 | docker run -d --name MongDB -p 27017:27017 -v /hshuo/mongo/db:/data/db mongo |
安装 MongoDB Compass
安装 Nginx
-
安装之后 /mydata/nginx/html 的路径下的文件可以访问。例如:当时仿写的长春理工大学官网
-
复制配置文件
名称 | 命令 |
---|---|
随便启动一个 nginx 实例,只是为了复制出配置 | docker run -p 80:80 --name nginx -d nginx:1.10 |
将容器内的配置文件拷贝到当前目录 | docker container cp nginx:/etc/nginx . |
修改文件名称 | mv nginx conf |
把这个 conf 移动到/mydata/nginx | mv conf /mydata/nginx |
删除原容器 | docker rm -f nginx |
安装新的 nginx | docker run -p 80:80 --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/conf:/etc/nginx -d nginx:1.10 |