Docker常用命令及常用容器安装

本文详细介绍了如何使用Docker部署Redis、MySQL、Nginx以及Java应用(jar和war包)。从启动和管理Docker服务,到创建和配置容器,包括端口映射、数据持久化、容器别名修改、密码设置等关键步骤,为读者提供了一套完整的Docker实战教程。
摘要由CSDN通过智能技术生成

Docker启动部分

1.启动docker:systemctl start docker

2.查看docker版本 :docker -v

3.重启docker:systemctl restart docker

4.关闭docker:systemctl stop docker

5、设置开机自启动:systemctl enable docker

容器部分

1、创建并启动容器:docker run --name=容器别名 -d -it -p 主机端口:docker容器端口 -v /宿主机挂载目录:/容器映射目录 --privileged=true --restart=always 镜像名:tag/镜像ID
  • d:后台运行这个容器
  • -i:已交互的方式运行
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -p:指定端口映射,格式为:主机端口:容器端口
  • -P:随机端口映射,容器内部端口随机映射到主机的端口
  • -v:映射配置文件的目录到容器目录(匿名挂载)
  • –privileged=true:让container内的root拥有真正的root权限
  • –restart:共有3种参数: no - container=不重启、 n-failure - container=退出状态非0时重启、 always=始终重启,想要主机重启后容器自动启动则设置参数always
2、已存在的容器更改别名:docker rename 原容器ID/别名 新别名
3、进入容器:docker exec -it 容器ID/别名 bash
4、启动/停止/重启/暂停/恢复容器:start/stop/restart/pause/unpause 容器ID/别名

Docker常用安装容器

1、Docker安装Redis步骤:

1、查询镜像:去docker hub上查询所需版本的redis镜像
2、拉取最新redis镜像:docker pull redis:latest
3、查看本地镜像:docker images
4、安装并运行redis容器:docker run --name=容器别名 -itd -p 6379:6379 --restart=always 镜像ID --requirepass 自定义redis密码
5、进入redis容器:docker exec -it 容器ID/容器别名 bash
6、进入redis命令:redis-cli 
7、查看现有的redis密码:config get requirepass
8、设置redis密码:config set requirepass ****(****为你要设置的密码)
9、若出现(error) NOAUTH Authentication required.错误,则使用 [auth 原密码 ]来认证密码

注意:只是单纯的通过命令行设置了密码,这种设置方式是临时的,当服务器重启后,密码会失效,需在conf文件中设置永久密码

解决创建Redis容器中没有conf配置文件问题

1、创建本地与docker映射的目录,即本地存放的位置:touch /home/redis/redis.conf
2、创建启动容器,加载配置文件并持久化数据:docker run --name=容器别名 --privileged=true -itd -p 6378:6379 -v /home/redis/conf/redis.conf:/etc/redis/redis.conf 镜像ID redis-server /etc/redis/redis.conf 
--appendonly yes

注意:redis.conf配置文件需自己上传

参数说明:
–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf:将主机/home/redis/conf目录下的redis.conf文件挂载到容器的 /etc/redis目录
redis-server:指定配置文件启动redis-server进程
–appendonly yes:开启数据持久化

2、Docker安装MySql步骤:

1、查询镜像:去docker hub上查询所需版本的mysql镜像
2、拉取需要的mysql版本镜像:docker pull mysql:8.0.27
2、查看已拉取的本地镜像:docker images
3、安装并运行mysql容器:docker run --name=mysql -itd -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d 
-v /home/mysql/data:/var/lib/mysql -v /home/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=123456
--privileged=true --restart=always 镜像ID
4、进入mysql容器:docker exec -it 容器ID/容器别名 bash

参数说明:
–name mysql:运行服务名字
-v /home/mysql/conf:/etc/mysql/conf.d :将主机/home/mysql/conf目录挂载到容器的 /etc/mysql目录
-v /home/mysql/data:/var/lib/mysql :将主机/home/mysql目录下的 data 目录挂载到容器的 /var/lib/mysql目录。
-v /home/mysql/logs:/logs :将主机/home/mysql目录下的 logs 目录挂载到容器的 /logs目录。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码

Docker中安装mysql8.0以上,远程登录时提示 caching_sha2_password 问题的解决办法

1、进入docker中的mysql:docker exec -it mysql容器别名 /bin/bash
2、登录: mysql -uroot -p你的密码
3、进入之后切换数据库:use mysql;
4、查询用户加密方式:SELECT Host, User, plugin from user;
5、修改%权限加密规则及密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
6、修改localhost权限加密规则及密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
7、刷新权限:FLUSH PRIVILEGES;
8、运行查看是否生效: SELECT Host, User, plugin from user; 

3、Docker安装Nginx步骤:

1、查询镜像:去docker hub上查询所需版本的nginx镜像
2、拉取最新nginx镜像:docker pull nginx:latest
2、查看已拉取的本地镜像:docker images
4、在宿主机中创建一个存放nginx相关配置文件的目录,用于与容器内部进行文件映射
3、安装并运行nginx容器:docker run --name=nginx -itd -p 80:80 -v /home/nginx/conf:/etc/nginx 
-v /home/nginx/www:/www -v /home/nginx/log:/var/log/nginx --privileged=true --restart=always 镜像ID
4、进入nginx容器:docker exec -it 容器ID/容器别名 bash

注意:nginx相关配置文件需自己上传

参数说明:
-v /home/nginx/conf:/etc/nginx :将主机/home/nginx/conf目录挂载到容器的 /etc/nginx目录
-v /home/nginx/www:/www :将主机/home/nginx/wwww目录挂载到容器的 /www目录。
-v /home/nginx/log:/var/log/nginx :将主机/home/nginx/log目录挂载到容器的 /var/log/nginx目录
其中,conf文件夹:存放nginx的相关配置文件 log文件夹:存放nginx的日志文件 www文件夹:存放相关静态资源文件

4、Docker安装jar包程序步骤:

1、打包:java项目打成jar包,与Dockerfile文件一起上传服务器
2、cd到 Dockerfile 文件的存放目录中
3、构建命令:docker build -t 镜像名:镜像标签 . --build-arg pname="jar包文件名包含扩展名"  --build-arg path="容器中对应jar包的启动路径"
4、查询镜像:docker images
5、安装并运行java项目容器:docker run --name=容器别名 -itd -p 8088:8088 -v /宿主机挂载目录:/容器映射目录 --restart=always 镜像ID
6、查询项目运行日志:docker logs -f 容器别名/容器ID
7、查询某日期至某日期的n条日志:docker logs -f --since=2020-10-10 --until='2021-01-11' --tail=100  容器别名/容器ID

注意:必须在 Dockerfile 文件的存放目录下,执行构建命令。其中的 . 代表本次执行的上下文路径,pname和path代表Dockerfile中引用的变量

例子:
@构建镜像:docker build -t cat-website:latest . --build-arg pname="CatWebsite.jar"  --build-arg path="/home/company/cat-website"
@创建容器:docker run --name=CatWebsite -itd -p 8888:8888 -p 10010:10010 -v /home/company/cat-website:/home/cat-website --restart=always cat-website

5、Docker安装war包程序步骤:

1、打包:java项目打成war包,与Dockerfile文件一起上传服务器(注意:war包名字必须是ROOT.war)
2、cd到 Dockerfile 文件的存放目录中
3、构建命令:docker build -t 镜像名:镜像标签 . --build-arg pname="ROOT.war"  --build-arg path="容器中对应jar包的启动路径"
4、查询镜像:docker images
5、安装并运行java项目容器:docker run --name=容器别名 -itd -p 8088:8088 -v /宿主机挂载目录:/容器内tomcat映射目录 --restart=always 镜像ID
6、查询项目运行日志:docker logs -f 容器别名/容器ID
7、查询某日期至某日期的n条日志:docker logs -f --since=2020-10-10 --until='2021-01-11' --tail=100  容器别名/容器ID

注意:必须在 Dockerfile 文件的存放目录下,执行构建命令。其中的 . 代表本次执行的上下文路径,pname和path代表Dockerfile中引用的变量

例子:
@构建镜像:docker build -t hx-yxcsjg:latest . --build-arg pname="ROOT.war"  --build-arg path="/home/hanxuan-yxcsjg"
@创建容器:docker run --name=hanxuan-yxcsjg -itd -p 8080:8080 -v /home/company/hanxuan-yxcsjg:/usr/local/tomcat/webapps -v /etc/localtime:/etc/localtime --restart=always hx-yxcsjg

以下是docker常用安装的映射文件资源和Dockerfile文件地址,需要的小伙伴可以自己拿去
https://www.aliyundrive.com/s/rWGtcJCMNdR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值