目录
6,Docker可视化操作(我自己没有实现这个可视化的界面)可省略
Docker安装(ubuntu)
这个docker的安装采取的脚本的安装方式,我在测试中没有更改过docker的源的情况
1,脚本安装docker快速安装
此示例下载脚本https://get.docker.com/open_in_new并运行它以安装 Linux 上 Docker 的最新稳定版本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
2,验证是否安装成功
3,下载镜像
Docker Hub Container Image Library | App Containerization
4,寻找镜像,复制
拉取镜像成功
sudo docker pull hello-world(从Docker Hub下载并拉取一个名为hello-world的镜像)
sudo docker images(查看docker的镜像)
5,运行docker实例
sudo docker run hello-world
6,Docker可视化操作(我自己没有实现这个可视化的界面)可省略
下载
安装部署
首先,创建 Portainer Server 将用于存储其数据库的卷:
sudo docker volume create portainer_data
然后,下载并安装 Portainer 服务器容器:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
最后访问这个可视化面板
Docker安装(centos)
1、安装与启动
1)卸载docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2)设置镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3)安装docker
yum install -y docker-ce docker-ce-cli containerd.io
4)启动
systemctl start docker
5)检测
docker version
6)关闭防火墙
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 禁止防火墙开启自启
systemctl status firewalld 查看防火墙状态
7)更改docker镜像为阿里
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://uy35zvn6.mirror.aliyuncs.com"]
}
EOF
8)重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2、常见镜像命令
- 镜像的拉取
语法:docker pull 软件(版本)
可以拉取docker中的软件镜像,没有指定版本默认为最新的
如docker pull nginx
也可以去docker hub找到软件版本的运行语句粘过来执行
2)镜像的查看
语法:docker images
3)镜像保存为压缩包
语法: docker save 压缩包名.tar 软件:版本号
4)删除镜像
语法:docker rmi 软件:版本号
5)加载镜像文件
语法:docker load -i 压缩包名.tar
3、容器相关
1)创建并运行一个容器
语法:docker run –-name 容器名 -p 宿主机端口:容器端口映射 -d 镜像名
如:docker run –name nginx1 -p 80:80 -d nginx 可以创建一个Nginx容器
写完以后就创建了一个容器,并且映射到了宿主机的80端口上,访问80端口就可以看到Nginx部署成功了
2)查看容器
语法:docker ps
3)启动容器
语法:docker start 容器名
4)停止容器
语法:docker stop 容器名
5)进入容器
语法:docker exec -it 容器名 bash
比如说进入Nginx容器
4、数据卷
概述:可以在宿主机中创建一个虚拟的目录,在这个虚拟的目录下可以直接对docker容器进行操作
1)创建数据卷
语法:docker volume [COMMAND]
COMMAND包括以下几个选项:
create 创建一个volume
inspect 显示volume信息
ls 列出所有的volume
rm 删除volume
如:创建一个名为volume1的volume并查看
2)挂载一个数据卷
我们在创建容器时,可以通过-v参数来挂载一个数据卷到某个容器的某个目录
语法:docker run –-name 【容器名】 -v 【数据卷名】:【要挂载的容器路径】 -p 【宿主机端口】:【容器端口映射】 -d 【镜像名】
如:创建一个名为Nginx2的容器并将他的/usr/share/nginx/html目录映射到nginxHtml数据卷上
docker run --name nginx2 -v nginxHtml:/usr/share/nginx/html -p 8080:80 -d nginx
5、直接挂载
概述:其实还可以将宿主机目录直接挂载到容器目录
语法:-v【宿主机目录】:【容器内目录】
-v 【宿主机文件】:【宿主机文件】
6、docker-compose
1)安装docker-compose
curl -SL https://get.daocloud.io/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
赋予权限
chmod +x /usr/local/bin/docker-compose
2)安装base自动补全
echo "185.199.111.133 raw.githubusercontent.com" >> /etc/hosts
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
Idea配合使用docker实现快速部署
1,首先前往插件市场添加docker的插件
2,添加docker的运行配置
3,选择SSH链接
4,连接虚拟机
5,绑定端口号,容器的名称自己随便
然后我们需要在项目的根目录下新建一个docker文件,在docker文件夹里新建一个DockerFile文件
6,DockerFile文件配置
相关配置语句:
#1.定义父镜像(定义当前工程依赖的环境):
FROM openjdk:17
#2.定义作者信息(可以省略不写):
MAINTAINER ideaDocker
#3.将jar包添加到容器(将jar包存入镜像中):
ADD there-0.0.1-SNAPSHOT.jar hello-idea-docker.jar
#4.指定这个容器对外暴露的端口号
EXPOSE 8081
#5.定义容器启动执行的命令: 当通过此镜像启动容器的时候,执行的命令
ENTRYPOINT ["java","-jar","hello-idea-docker.jar"]
- 是我们使用的java版本
- there-0.0.1-SNAPSHOT.jar是我自己打包之后的jar包名称,hello-idea-docker.jar是我新命名的名称跟5要对应
- 这个there.jar需要我们将项目打包之后放在docker的目录下
7,运行Docker部署到云服务器上
这个sha的文件是我们之前运行docker的there.Jar的文件,被覆盖之后会被随机命名可以删除
此时这个jar已经跑在了我们的云服务器上,这个时候我们来测试一下
这个需要我们同步的去将数据库上传到云服务器上,更改数据库的链接地址
测试成功!!!!