centos 8 安装docker及常用命令

安装 docker 安装

link

配置ustc镜像

mkdir -pv /etc/docker
vim /etc/docker/deamon.json

deamon.json 内容⬇️

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

# 修改完后保存,重启docker

yum安装mysql

链接

dockerfile

# 创建一个名为`Dockerfile`的文件
# 里面写
FROM centos
RUN yum -y install wget \
    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
    && tar -xvf redis.tar.gz
# 使用这个命令读取dockerfile来创建容器(镜像名称:镜像标签)
docker build -t issa/myubuntu:1.15 .
# 指定从那个文件构建镜像
docker build -f /path/to/a/Dockerfile
# m1 芯片的使用这个否则报错/bin64下的某文件不存在
docker build --platform linux/x86_64 -t centos7/centos:7 .
# m1 芯片运行镜像
docker run -it --platform linux/amd64 mini/all:1.0

# 解压命令
tar -zxvf apache-tomcat-8.5.78.tar.gz

# 开启8080端口
firewall-cmd --permanent --add-port=8080/tcp

# 重启防火墙
systemctl restart firewalld

# 配置jdk环境变量
export JAVA_HOME=/home/software/jdk11
export PATH=$PATH:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

docker 容器运行后添加端口映射的两种方式

  1. 把当前容器打包为镜像,再从新在docker run时添加端口映射
  2. 修改docker容器的配置文件添加端口映射

首推这个
链接

docker 拉取mysql的流程

参见链接

相关命令

# 停止服务
systemctl stop docker

# 开启服务
systemctl start docker

# 重启服务
systemctl restart docker

# 查看启动状态
systemctl status docker 

# 查看docker信息
docker info

# 配置开机启动docker
systemctl enable docker

# 查看镜像
docker images

# 搜索镜像
docker search centos

# 拉取镜像
docker pull centos:7

# 删除镜像 (id || name)
docker rmi IMAGE ID

# 删除所有镜像
docker rmi `docker images -q`

# 查看正在运行的镜像
docker ps

# 查看所有容器
docker ps -a

# 查看最后一次运行的镜像
docker ps -l

# 查看停止的镜像
docker ps -f status=exited

# 在没有使用客户端的时候查看日志
docker logs -f ID

# 连接到正在运行的容器
docker attach ID

# 退出正在运行的容器,不关闭该容器快捷键
control + p +q

# 创建容器
docker run

# 重命名容器
docker rename oldName newName

# 交互方式创建一个容器(指定容器名:id)
docker run -it --name=centos centos:7 /bin/bash

# 以守护程序方式运行容器
docker run -di --name=mycentos2 centos:7

#  进入某个正在运行的容器
docker exec -it mycentos2 /bin/bash
# windows10 需要在命令前加上winpty

# 退出当前容器
exit

# 停止容器(ID || name)
docker stop ID

# 启动容器(ID || name)
docker start ID

# 删除容器实例
docker rm -f ID

# 删除所有容器
docker rm -f `docker ps -a -q`

# 往容器内拷贝文件(cp 本机地址 容器ID: 容器地址)
docker cp test 225a22a0a78e:/usr/local/

# 往本机拷贝文件(cp 容器ID: 容器地址 本机地址)
docker cp 225a22a0a78e:/usr/local/test test2

# 查看容器详细信息
docker inspect ID

# 目录挂载(本地地址: docker地址 实例名 镜像名: 标签)
docker run -di -v /root/docker/mycentos3/:/usr/local/localhost --name=mycentos centos:7

# 容器打成镜像

docker commit 容器id 镜像名:镜像版本
 
docker save 镜像名:镜像版本 -o xxx.tar

# 容器保存为镜像
docker commit redis myredis

# 镜像备份(将镜像保存为tar文件)
docker save -o myredis.tar myredis

# 镜像恢复与迁移(-i 输入的文件)
docker load -i myredis.tar

# bhf使用的docker容器生成命令
docker run -di --name=bhf -p 3306:3306 -p 80:80 -p 8081:8081 -p 8082:8082 -e MYSQL_ROOT_PASSWORD='123456' -v ./mydata/mysql/log:/var/log/mysql -v ./mydata/mysql/data:/var/lib/mysql -v ./mydata/mysql/conf:/etc/mysql -v ./config/etc/:/etc/ -v ./:/home/

-v ./config/nginx/:/etc/nginx/conf.d/ -v ./back/:/home/ -v ./web/:/home/ -v ./config/jdkRes/:/home/jdk8/  mysql:5.7

安装mysql

# 拉取mysql 8.0镜像
docker pull mysql:8.0

# 运行并将数据挂载至本机(宿主机端口: 容器端口、-e 添加一个环境变量,直接设置root密码、镜像名: 版本)
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql:8.0 -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql

# 进入mysql容器内
docker exec -it mysql /bin/bash

# 登陆mysql并设置字符集
mysql -uroot -ppassword --default-character-set=utf8

# 修改登陆密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssword123';
systemctl restart mysqld

# 端口占用查询
sudo netstat -nlpl |grep 3306

# 修改身份认证插件为 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 刷新权限
FLUSH PRIVILEGES;

2059有效方法

安装Nginx

# 拉取nginx镜像
docker pull nginx

# 以守护程序方式运行容器
docker run -di --name=nginx -p 80:80 nginx

# 以守护程序方式运行容器,同时挂载nginx的配置目录,想挂载需要先有相应的目录
docker run -di --name=nginx -p 80:80 -v /usr/local/mydata/conf/:/etc/nginx nginx
docker run -di -v /usr/local/mydata/conf/:/etc/nginx --name=nginx -p 80:80 nginx

docker run -d -p 80:80 --name nginxweb -v /Users/lantian/Downloads/map/:/home/map/ -v /Users/lantian/shell/mapConf/:/etc/nginx/conf.d/ nginx

安装Redis

# 拉去Redis镜像
docker pull redis

# 以守护程序方式运行容器,并设置运行端口
docker run -di --name=redis -p 8080:6379 redis

# 进入redis-cli
redis-cli

# 测试是否连通
PING

# 创建值
set ping Pang

# 获取值
get ping

# 退出
exit


dockerFile

dockerFile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像
对于开发人员:可以为开发团队提供一个完全一致的开发环境

docker私有仓库

私有仓库搭建与配置

# 拉取私有仓库
docker pull registry

# 启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry

# 打开浏览器访问localhost:5000/v2/_catalog 看到{"registories":[]} 表示私有仓库搭建成功并且内容为空

# 修改deamon.json,添加以下内容,保存退出。

{"insecure-registries": ["ip:端口]

# 此步用于让docker信任私有仓库地址

# 重启docker服务
systemctl restart docker

# 启动私有仓库容器
docker start registry

# 打开浏览器访问localhost:5000/v2/_catalog

私有仓库镜像上传

docker tag redis ip:端口/redis
docker images
docker push repository

DockerMaven插件自动部署

后续自己 查吧,不做详细赘述

安装RabbitMQ

# 拉取镜像
docker pull rabbitmq:3.7.12

# 以守护程序方式运行容器
docker run -di --name=rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.7.12

# 进入容器
docker exec -it rabbitmq /bin/bash

# 安装rabbitmq的ui插件
rabbitmq-plugins  enable rabbitmq_management
# 访问地址localhost:15672

安装Elasticsearch

# 拉取镜像
docker pull elasticsearch:7.5.0

# 修改虚拟内存区域大小,否则会因为过小而无法启动
sysctl -w vm.max_map_count=262144

# 以守护程序方式运行容器
docker run -di --name=rabbitmq -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "cluster.name=elasticsearch" -v /本机/:/usr/share/elasticsearch/plugins elasticsearch:7.5.0

# 安装中文分词器
docker exec -it elasticsearch /bin/bash

# 此命令需要在容器中运行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.0/elasticsearch-analysis-ik-7.5.0.zip

# 重启elasticsearch
exit
docker restart elasticsearch

# 访问地址localhost:9200

posted @ 2022-06-22 10:18  lambertlt  阅读(348)  评论(0编辑  收藏  举报