首先需要安装一些基本的软件
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用阿里云的镜像仓库地址,阿里云镜像站地址为:https://mirrors.aliyun.com/,下拉找到 Docker CE 点进去就是 Docker CE 的镜像仓库使用说明,也可以通过这个地址直接打开:https://developer.aliyun.com/mirror/docker-ce
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加好软件仓源之后就可以安装 Docker 了:
sudo yum install docker-ce docker-ce-cli containerd.io
在下载好软件包之后可能会让你确认 Docker 的 GPG 密钥信息,确认密钥的指纹是否和 Docekr 文档上给出的密钥指纹信息一致:
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
一致的话就可以输入y确认。安装好之后 Docker 并没有启动,我们需要手动启动 Docker:
$ sudo systemctl start docker
$ sudo systemctl enable docker
可以将上面命令中的 start 换为 status 来查看 Docker 的运行情况。换为 stop 则停止 Docker,换为 enable 则启用开机自启,换为 disable 则禁用开机自启。
启动了 Docker 之后我们可以运行一个 hello-world 镜像试试看:
$ sudo docker run hello-world
在安装好之后的 docker 命令只能通过 sudo 去执行,那是因为 Docker 的守护程序使用 Unix 套接字来监听,而 Unix 套接字是属于 root 用户的,其它用户必须使用 sudo 去访问。但是 Docker 在运行时会授予 docker 用户组下面的用户访问权限。而 docker 用户组在安装好 Docker 之后就自动被创建,如果没有可以使用下面的命令去创建:
$ sudo groupadd docker
接着我们需要将当前用户添加到 docker 用户组中:
$ sudo usermod -aG docker $USER
$USER 就是当前用户的用户名。
加好之后我们需要注销然后重新登陆才会使配置生效。我们也可以使用下面的命令来使配置生效:
$ newgrp docker
接着我们就可以运行不带 sudo 的 docker 命令:
$ docker run hello-world
如果服务器重启后(docker我们已经设置开机自启;但是容器没有在运行!所以需要手动运行容器)查看正在运行的容器
查看一下镜像
查看所有容器
运行一下容器就正常了
可以加mysql版本-
docker pull mysql:8.0.19
docker pull mysql
–name mysqltest容器名
用navicat连接的时候用3307端口
MYSQL_ROOT_PASSWORD=123456 密码为123456
docker run -d --name mysqltest -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.19
docker exec -it mysqltest bash
mysql -uroot -p
123456
主机:CentOS 7.3公网 IP
端口:3307
用户名:root
密码:123456
如果报错:
Authentication plugin ‘caching_sha2_password’ cannot be loaded
原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
修改加密规则
进入mysql容器
docker exec -it mysql bash
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
更新一下用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
flush privileges;
部署docker依赖
<properties>
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
<!-- docker插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<!--<version>0.2.3</version>-->
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
切换到文件夹
$ cd /home/java
查看一下文件夹的东西
$ ls
bulid一下 镜像名springbootdemo4docker
$ docker build -t springbootdemo4docker .
查看一下容器
$ docker images
$ docker run -d -p 8080:8080 springbootdemo4docker
查看正常运行的容器
$ docker ps
更新好的jar包通过可视化软件把原来的jar包替换
切换到文件夹
$ cd /home/java
查看正在运行的容器
$ docker ps
停止运行容器
$ docker stop cbf45880f842
删除容器
$ docker rm cbf45880f842
$ docker ps -a
此时已经被删除了
$ docker images
镜像还在java8 不需要删除 项目需要删除
镜像删除
$ docker rmi ea8f1606312c
$ docker build -t baishitong .
重新运行一下容器
$ docker run -d -p 8080:8080 baishitong