安装docker
先安装所需软件包,然后配置阿里云仓库,进行安装
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y yum-utils
yum -y install docker-ce docker-ce-cli containerd.io
docker相关操命令
启动Docker命令
systemctl start docker
查看docker服务状态
systemctl status docker
停止Docker命令
systemctl stop docker
查看docker镜像
docker images
查看docker容器
docker ps
查看所有docker容器
docker ps -a
搜索镜像
nginx 为镜像名称
docker search nginx
拉取镜像到本地
openjdk 为镜像名称 11为版本号
docker pull openjdk:11
删除镜像
openjdk 为镜像名称 11为版本号
docker rmi -f openjdk
创建并运行容器
必须先将镜像拉取到本地后方可执行创建
mynginx为创建的容器名称,可自行修改 8080为宿主机端口号 80为容器运行的端口号 nginx为镜像名称
docker run -d --name mynginx -p 8080:80 nginx
删除容器
必须先执行docker stop mynginx 进行停止,停止后方可删除
docker rm -f mynginx
进入docker容器
mynginx为容器Id或容器名称,必须是已启动的容器,停止容器不允许进入
docker exec -it mynginx bash
从宿主机拷贝文件至容器中
/opt/test.js为宿主机文件或文件夹 mynginx为容器名称或ID /usr/local/tomcat/webapps/test/js为容器中的目录
docker cp /opt/test.js mynginx:/usr/local/tomcat/webapps/test/js
启动docker容器
mynginx为容器Id或容器名称
docker start mynginx
停止docker容器
mynginx为容器Id或容器名称
docker stop mynginx
重启docker容器
mynginx为容器Id或容器名称
docker restart mynginx
安装nginx
默认拉取最新的一个版本
docker pull nginx
查看已经拉取的docker中的镜像文件
docker images nginx
创建并启动一个容器
mynginx为容器名称 8080为容器里面的端口号 80为宿主机访问的端口号 nginx为镜像名称
docker run -d --name mynginx -p 8080:80 nginx
修改默认域名映射
先将配置文件拷贝出来 需要先在宿主机创建 /home/nginx目录
docker cp mynginx:/etc/nginx/conf.d/default.conf /home/nginx
编辑配置文件
vi /home/nginx/default.conf
修改完成后,按esc 后输入:wq回车键即可保存
将文件拷贝回容器中
docker cp /home/nginx/default.conf mynginx:/etc/nginx/conf.d/default.conf
如需多个网站配置,需要将default.conf文件拷贝,然后修改为需要的配置,因为默认会扫描容器中/etc/nginx/conf.d下面的所有*.conf配置文件,只要放在此目录都会扫描并生效
查看已启动容器
docker ps
安装mysql
拉取myslq 8镜像到本机
docker pull mysql:8
创建并运行mysql8
3306:3306标识宿主机和容器运行mysql端口都是3306 --name mysql指定容器名称为mysql -e MYSQL_ROOT_PASSWORD设置初始密码为beitia@123456… -d标识是后台运行 mysql为创建容器所需镜像名称(此处容易出现找不到的问题,可以通过docker images查看镜像id,然后替换在此处也可)
mysql5.7开始默认针对表名是区分大小写的,如果想设置为不区分大小写 则在-d mysql后添加
–lower_case_table_names=1
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=beitia@123456 -d mysql
进入mysql镜像
docker exec -it mysql bash
在容器中连接mysql
mysql -uroot -pbeiantia@123456
重新创建一个root用户,赋予全部权限,并且允许远程连接
grant all privileges on *.* to root@'%' identified by 'beitia@123456';
修改mysql账号密码
user=登录用户名
host=登录的权限 %公网可访问的
update MySQL.user set authentication_string=password('新密码') where user='root' and host='%';
修改完成后需刷新权限
flush privileges;
然后exit即可退出mysql容器
安装jdk
拉取jdk11版本到本机 注意,在linux系统上,是openjdk
docker pull openjdk:11
查看镜像
docker images
删除镜像
docker rmi -f 镜像名称
安装redis
拉取redis 默认最新版
docker pull redis
创建并运行容器
创建可使用 -v 进行挂载配置文件或数据文件夹,日志等信息
docker run --name myredis -p 6379:6379 -d redis
启动redis
docker start myredis
停止redis
docker stop myredis
部署jar
创建项目存放jar包文件夹
创建一个名为demo的文件夹放在 /home目录下
mkdir /home/demo
进入demo文件夹
cd /home/demo
创建一个Dockerfile文件,这是部署项目标准的文件
touch Dockerfile
利用上传工具将自己的jar包拷贝到/home/demo目录和Dockerfile文件同级 例如:demo.jar
编辑当前Dockerfile文件
vi Dockerfile
Dockerfile中填充如下内容
# 拉取jdk11作为基础镜像,这里的名称及版本就是拉取到本地的镜像名称和版本号
FROM openjdk:11
# 作者
MAINTAINER jyj <jyj@163.com>
# 添加jar到镜像并命名为demo.jar
ADD demo.jar /jar/demo.jar
# 镜像启动后暴露的端口
EXPOSE 8080
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","/jar/demo.jar"]
填充完内容后,先按esc 然后输入:wq
部署Dockerfile文件为镜像
命令结尾有个点,不能去掉,否则不能读取 demo为镜像名称,可自行修改
docker build -t demo .
查看镜像,可以看到名称为docker-jar的镜像信息
docker images
创建并运行容器
demo1为容器名称可自行定义,第一个8080为宿主机用于访问的端口号 第二个8080为项目jar包中定义的端口号,也就是yml中的端口号 demo为上面我们创建镜像的名称,跟上面的同步
docker run --name demo1 -p 8080:8080 -d demo
查看启动日志
docker logs [OPTIONS] 容器名称或ID
Options:
–details 显示更多的信息
-f, --follow 跟踪实时日志
–since string 显示自某个timestamp之后的日志,或相对时间,如40m(即40分钟)
–tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
–until string 显示自某个timestamp之前的日志,或相对时间,如40m(即40分钟)
例如:查看demo1容器的启动日志
docker logs mynginx
查看demo1最新30分钟的日志
docker logs --since 30m mynginx
查看某个时间之后的日志
$ docker logs -t --since="2022-03-29T13:23:37" mynginx
查看某时间段日志:
$ docker logs -t --since="2022-03-29T13:23:37" --until "2022-03-31T13:23:37" mynginx
更新jar
将新的jar包替换/home/demo中的jar包,例如:/home/demo/demo.jar
将新jar包替换容器中的jar
docker cp /home/demo/demo.jar demo1:/jar/demo.jar
停止容器
docker stop demo1
启动容器
docker start demo1
重启容器(此步骤相当于上面的停止和启动接连执行)
docker restart demo1
删除容器
docker rm -f demo1