Docker
Docker安装
1.卸载
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装
#安装docker依赖
sudo yum install -y yum-utils
#设置安装地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#安装docker(docker的引擎、操作docker的客户端、docker容器)
sudo yum install docker-ce docker-ce-cli containerd.io
3.检查安装
docker -v
4.设置开机启动
sudo systemctl enable docker
5.配置镜像下载地址
1.创建文件
sudo mkdir -p /etc/docker
2.配置地址
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kru7klna.mirror.aliyuncs.com"]
}
EOF
6.重启docker线程
sudo systemctl daemon-reload
7.重启docker
sudo systemctl restart docker
Docker基础命令
启动
systemctl restart docker
查看镜像
sudo docker images
拉取镜像
docker pull 镜像名
打包自定义容器
docker build -t 容器名 .
启动容器
docker run -p 6379:6379 --name 容器名(mysql)
查看进程
docker ps
关闭容器
docker stop 容器名称
删除容器
docker rm 容器名(redis)
重启容器
docker restart 容器名
Mysql安装
1.拉取
sudo docker pull mysql:5.7
2.查看拉取成功
sudo docker images
3.启动MySQL
# --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
sudo 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=123456 \
-d mysql:5.7
4.查看是否运行
sudo docker ps
5.本地测试链接
6.修改配置
cd /mydata/mysql/conf
sudo vi my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
7.重启MySQL
sudo docker restart mysql
Redis安装
1.拉取
docker pull redis
2.检查
docker images
3.创建配置目录
mkdir -p /mydata/redis/conf
4.进入配置目录
cd /mydata/redis/conf
5.创建配置文件
touch redis.conf
6.启动
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
7.本地连接测试
Nginx安装
1.拉取
docker pull nginx
2.检查
docker images
3.创建挂载目录,创建配置文件目录
mkdir -p /home/nginx/{conf,log,html}
4.启动
docker run -d --name nginx -p 8800:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf/
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
5.创建Nginx容器并运行
# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop nginx
# 删除该容器
docker rm nginx
# 删除正在运行的nginx容器
docker rm -f nginx
6.重新启动(自定映射端口)
docker run \
-p 80:80 \
--name poetry-web \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
7.浏览器访问
8.注意:云服务器和防火墙都要打开
RabbitMQ安装
1.拉取
docker pull rabbitmq
2.查看
docker images
3.启动(-e 指定登录账号密码)(-p 指定端口)
docker run\
-e RABBITMQ_DEFAULT_USER=root\
-e RABBITMQ_DEFAULT_PASS=417403\
--name mq\
--hostname mq01\
-p 15672:15672\
-p 5672:5672\
-d\
rabbitmq
4.开放服务器和防火墙端口
firewall-cmd --zone=public --add-port=15672/tcp --pernanent
firewall-cmd --zone=public --add-port=5672/tcp --pernanent
5.访问:15672
#如果无法访问,请尝试添加配置
#进入容器
docker exec -it myrabbitmq bash
#添加配置
rabbitmq-plugins enable rabbitmq_management
项目打包build
1.mvn package
2.自定义目录创建Dockerfile
FROM java:8
VOLUME /tmp
ADD poetry-0.0.1-SNAPSHOT.jar poetry-0.0.1-SNAPSHOT.jar
EXPOSE 8081
ENTRYPOINT java -jar /poetry-0.0.1-SNAPSHOT.jar
3.上传到自定义目录
4.在服务器build
Dockerfile所在全路径
docker build -t poetry /myData/.
5.启动
docker run -p 8081:8081 --name 自定义容器 -d 容器id
复制文件到容器
docker cp fromFile 容器ID:toFile