1. docker安装
官网地址:https://docs.docker.com/engine/install/centos/
1.在安装docker之前,首先使用yum -y remove docker命令移除系统中已有的旧版本的docker
yum -y remove docker
使用 yum 安装
安装 yum-utils
yum install -y yum-utils
设置 yum 源为阿里云方便下载 Docker Engine
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新版本的 Docker Engine 和容器
yum install docker-ce docker-ce-cli containerd.io
Docker 命令
启动 docker
sudo systemctl start docker
停止 docker
sudo systemctl stop docker
重启 docker
sudo systemctl restart docker
设置开机启动
sudo systemctl enable docker
查看 docker 状态
sudo systemctl status docker
查看 docker 内容器的运行状态
sudo docker stats
查看 docker 概要信息
sudo docker info
查看 docker 帮助文档
sudo docker --help
安装校验
[root@iZ2ze55utcxcqh66vercheZ ~]# docker -v
Docker version 19.03.13, build 4484c46d9d
[root@iZ2ze55utcxcqh66vercheZ ~]# docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:03:45 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Git commit: 4484c46d9d
Built: Wed Sep 16 17:02:21 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.7
GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175
runc:
Version: 1.0.0-rc10
GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
Version: 0.18.0
GitCommit: fec3683
[root@iZ2ze55utcxcqh66vercheZ ~]#
配置镜像加速器
/etc/docker 目录下没有daemon.json。新创建一个 touch daemon.json
[root@iZ2ze55utcxcqh66vercheZ docker]# pwd
/etc/docker
[root@iZ2ze55utcxcqh66vercheZ docker]# ll
total 8
-rw-r--r-- 1 root root 121 Nov 22 00:18 daemon.json
-rw------- 1 root root 244 Nov 22 00:00 key.json
[root@iZ2ze55utcxcqh66vercheZ docker]#
重新加载某个服务的配置文件
systemctl daemon-reload
重新启动 docker
systemctl restart docker
检查加速镜像是否生效
docker info
docker部署spring boot 项目
docker开启远程安全访问
一、 编辑docker.service文件
vim /usr/lib/systemd/system/docker.service
添加脚本:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
加载配置文件并重新启动docker
systemctl daemon-reload
systemctl restart docker
访问 http://IP:2375/version
创建DockerFile文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD project-demo1-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8000
修改 Pom.XML
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<dockerHost>http://远程服务器IP:2375</dockerHost>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
打包 install 之后点击 docker:build
完成
登录远程服务器查看镜像是否已经存在
执行命令启动
docker run -p 8080:8000 --name springboot -dit [IMAGES_ID]
docker run -d hello-world(不要这么做)
docker run -dit hello-world(推荐)
查看日志
docker logs -f project-demo1
删除docker镜像
docker ps -a
docker rm [CONTAINER ID]
docker stop [CONTAINER ID]
docker restart [CONTAINER ID]
docker images
docker rmi [IMAGE ID]
进入docker内部
docker exec -it 3dd385056237 /bin/bash
docker exec -it 3dd385056237 /bin/sh
进入容器命令:
docker attach 容器ID
或者
docker exec -it 容器ID /bin/bash
或者
docker exec -it 容器的name bash
退出容器命令
exit
或者
Ctrl+P+Q
容器内部访问外部MySQl连接不同的问题
java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect to this MySQL server":
解决:
方案一:改表:
mysql -u root -p;
use mysql ;
select user,host,password from user;
update user set host = '%' where user='root';
方案二:授权法:
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON . TO ‘myuser’@‘192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
无论使用哪种方案,请重启Mysql服务。
docker安装redis
拉取redis 最新镜像
访问 Redis 镜像库地址: https://hub.docker.com/_/redis?tab=tags。
docker pull redis:latest
启动redis镜像
docker run -itd --name redis-test -p 6379:6379 redis