docker基础内容
docker镜像制作
为了加速镜像拉取等操作,一般要配置国内的镜像加速器,这里选择阿里云镜像加速器
1 2 3 4 5 6 7 8 9
| { "debug": true, "registry-mirrors": [ "https://itobyt5q.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn" ], "experimental": false }
|
常用的docker指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| docker images
docker image rm [镜像id]
docker container ls --all
docker ps
docker kill [容器id]
docker start [容器id]
docker rm [容器id]
docker exec -it [容器id] bash
|
配置mysql
1
| docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 -v /home/docker/mysql/data:/var/lib/mysql --name mysql mysql:8.0.0
|
1
| docker exec -it mysql bash
|
如果容器运行正常,但无法访问到mysql:
- 防火墙阻拦
1 2 3 4 5 6
| $ systemctl status firewalld $ firewall-cmd --zone=public --add-port=3306/tcp -permanent $ firewall-cmd --reload
$ sudo systemctl stop firewalld
|
- 未开启mysql远程访问权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| # Mysql为了安全考虑,初始的时候并没有开启Root用户(解释:mysql的root用户和我们云服务器的root用户是两个不同的,分开的)的远程访问权限,Root(解释:这里是指mysql的root用户,而不是云服务器的root用户)只能本地localhost,127.0.0.1访问
# mysql使用mysql数据库中的user表来管理权限,修改user表就可以修改权限(只有root账号可以修改) mysql> use mysql; Database changed mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 2 rows in set (0.00 sec) mysql> grant all privileges on *.* to root@'%' identified by "password"; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 3 rows in set (0.00 sec)
|
python代码测试mysql是否配置成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import pymysql conn = pymysql.Connect( host='127.0.0.1', user='root', password='Jiangshu123', database='customer', port=8083, charset='utf8', autocommit = False )
print("ok")
cur = conn.cursor() cur.execute("show databases") print(cur.fetchall())
|
Vue前端项目打包
1 2 3 4 5
| 一般情况下执行npm run build进行打包 特殊情况下执行npm run build:prod才能正常打包
此外还有一个问题,打包完成添加到SprringBoot项目启动运行,静态文件抛404,最后发现还需要对vue.config.js修改。 添加 publicPath: './'
|
前端项目打包后保存在dist目录下,然后将dist目录下的所有文件目录拷贝到spring-boot后端项目的resourse>static目录下。
以上配置完成之后先在本地运行,然后通过maven进行打包
1
| maven下的Lifecycle下的package
|
镜像制作
得到打包后的jar包之后就可以制作镜像,首先在jar包相同的目录下新建Dockerfile文件,加入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
FROM java:8
MAINTAINER jeremy <jeremyCoding@163.com>
VOLUME /tmp
ADD demo-01.jar app.jar
RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
|
执行docker build -t [镜像名称] . 完成进行制作。
容器间通信