0.Docker基础命令
-d : 后台运行容器
-it : 进入容器交互界面
-v : 宿主机目录挂载到容器目录。宿主机目录如果不存在,则会自动生成。格式:-v <宿主机目录>:<容器目录>
-a : -all
--restart=always : Docker 重启,容器自动启动。
ctrl+d : 退出容器(exit有时候无法退出)
- 启动docker服务
sudo service docker start
- 启动所有docker容器
sudo docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
-
查看容器信息
docker inspect 容器ID -
查看默认的docker存储路径
docker info |grep 'Docker Root Dir'
WARNING: No swap limit support
Docker Root Dir: /var/lib/docker
- 停止所有docker容器
sudo docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
- 停止docker服务
sudo service docker stop
cd /var/lib
- 打包docker目录
sudo tar -czvf /usr/docker.tar.gz docker/
cd /usr/
sudo tar -xzvf docker.tar.gz
- 修改docker默认的存储位置
sudo vim /etc/docker/daemon.json
{
"graph": "/home/server/docker"
}
- 查看容器
docker ps 查看运行的容器
docker ps -a -s 查看所有的容器并新增一列size(容器占得大小)
1.安装docker
见Centos安装Docker.md文档
2.安装Mysql
# 加载mysql
sudo docker load < /home/<docker>/mysql5.7.19.tar.gz
# 创建数据卷
sudo docker volume create --name v_mysql
# mysql:latest , 启动mysql(root@localhost无权限登录)
# docker pull mysql
sudo docker run -d --name=mysql --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v v_mysql:/var/lib/mysql mysql:latest
# 增加用户,但是该用户没有创建数据库的权限
# -e MYSQL_USER=testdba -e MYSQL_PASSWORD=testddba
# 配置好my.cnf挂载上去
# mysql:5.7.19 , 启动mysql(root@localhost无权限登录)
# docker pull mysql:5.7.19
# sudo docker run -d --name=mysql5.7.19 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=<password> -v v_mysql:/var/lib/mysql mysql:5.7.19
# 进入Mysql容器
sudo docker ps -a
sudo docker exec -it 35d59103b53e bash
# 安装vim命令
# apt-get update
# apt-get install -y vim
# 修改配置文件
# vim /etc/mysql/my.cnf
# [mysqld]
# skip-grant-tables
# 重启
# docker restart mysql
#创建用户并授予网络权限
MariaDB[(none)]>use mysql;
MariaDB[(mysql)]>grant all privileges on *.* to username@'%' identified by 'password';
#创建用户并授予网络权限并且可以授权
MariaDB[(mysql)]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
MariaDB[(mysql)]>flush privileges;
# 先进入mysql容器,docker exec -it 35d59103b53e bash
# 修改密码的命令
# mysql -uroot -p
# 数据映射在v1上
# mysql> select Host,User,plugin,authentication_string from mysql.user;
# mysql> update mysql.user set authentication_string='123456' where user='root';
# 默认密码永久过期
# mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# mysql> flush privileges;
# 去掉配置文件免密登录,并重启
# vim /etc/mysql/my.cnf
# [mysqld]
# skip-grant-tables
# 重启
# docker restart mysql
#docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#-v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
#-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
#-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql。
#-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf
#-v /home/mysql/logs:/logs
#-v /home/mysql/data/mysql:/var/lib/mysql
3.安装JDK
# 加载镜像
docker load < /home/docker/java.tar.gz
# 启动jdk
docker run -it -d --name jdk java bash
docker search jdk
docker pull primetoninc/jdk
docker pull majiajue/jdk1.8
4.安装Nginx
# 加载镜像
docker load < /home/docker/nginx.tar.gz
# 方式一 : 将配置好的nginx.conf挂载到容器中
docker run --name nginx -p 80:80 -p 443:443 -v /home/docker/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/docker-nginx/log:/var/log/nginx -v /home/docker/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx
# 方式二 : 启动nginx并手动配置
docker run -it -d --name nginx nginx
# 进入nginx容器
docker exec -it nginx bash
# 安装vim命令
# apt-get update
# apt-get install -y vim
vim /etc/nginx/nginx.conf
# 重启nginx
docker restart nginx
5.Tomcat
-
制作Tomcat 8镜像
docker search tomcat8 docker pull ashince/tomcat8 docker save ashince/tomcat8 > /Users/wangfugui/Downloads/tomcat8.tar.gz -
安装Tomcat
# 加载镜像
sudo docker load < /home/<adam>/tomcat8.tar.gz
sudo docker images
sudo docker tag ashince/tomcat8 tomcat
# 路径区分大小写,Mac上需要在【Preferences】-【Resources】-【File sharing】添加/Users/wangfugui/Downloads/wr挂载权限
# 应用配置文件数据库注意:tomcat容器中端口使用mysql容器内部IP和端口,而不是宿主机和localhost
sudo docker run -d --name tomcat -p 8080:8080 -v /home/<lywei1>/wr:/usr/local/tomcat/webapps/ tomcat
# 进入tomcat容器
docker exec -it tomcat bash
5.部署步骤
-
安装Docker
-
上传文件
ssh root@<ip> mkdir /opt/software/webapps scp /Users/wangfugui/Downloads/dev/docker/mysql5.7.19.tar.gz root@<ip>:/opt/software scp /Users/wangfugui/Downloads/dev/docker/tomcat8.tar.gz root@<ip>:/opt/software scp /Users/wangfugui/Downloads/dev/docker/ROOT.war root@<ip>:/opt/software/webapps scp /Users/wangfugui/Downloads/dev/docker/wr.sql root@<ip>:/opt/software -
CentOS防火墙
# systemctl stop firewalld sudo firewall-cmd --zone=public --add-port=3307/tcp --permanent sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent sudo firewall-cmd --reload sudo systemctl restart docker -
安装Mysql容器
# 自定义网段 sudo docker network create --subnet=172.17.0.0/16 net1 # Mysql sudo docker load < /opt/software/mysql5.7.19.tar.gz sudo docker volume create --name v_mysql sudo docker run -d --name=mysql5.7.19 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=<password> -e MYSQL_USER=cup_dba -e MYSQL_PASSWORD=<password> -v v_mysql:/var/lib/mysql --net=net1 --ip 172.17.0.3 mysql:5.7.19 -
导入数据
sudo docker exec -it mysql5.7.19 bash # cup_dba用户需要授权 mysql -uroot -p >create database wr default character set utf8mb4 collate utf8mb4_unicode_ci; # 客户端用户没权限,重启一下就好了? # 执行sql -
Tomcat
sudo docker load < /opt/software/tomcat8.tar.gz sudo docker tag ashince/tomcat8 tomcat sudo docker rmi ashince/tomcat8 sudo docker run -d --name tomcat --restart always -p 80:8080 -v /opt/software/webapps/:/usr/local/tomcat/webapps/ --net=net1 --ip 172.17.0.8 tomcat sudo docker run -d --name tomcat --restart always -p 80:8080 -v /home/<adam>/wr/:/usr/local/tomcat/webapps/ tomcat # 查看日志 # docker exec -it tomcat bash # cd logs # curl http://172.17.0.8:8080 -
访问
curl http://<ip>:8080
1150

被折叠的 条评论
为什么被折叠?



