Docker容器部署
一 安装Docker
1 官方建议安装在Linux的Ubuntu中,一些补丁可以及时更新,如果要安装在CentOS中,版本要求CentOS 7.x及以上,否则一些补丁无法更新
2 安装的相关命令
安装 yum install docker(提示是否安装 敲y安装)
查看版本信息 docker -v
查看概要信息 docker info
查看帮助文档 docker --help
启动 systemctl start docker
停止 systemctl stop docker
重新启动 systemctl restart docker
查看状态 systemctl status docker
开机启动 systemctl enable docker
二 Docker镜像操作
1 列出镜像 docker images
REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
2 搜索镜像 docker search 镜像名称
3 拉取镜像 docker pull 镜像名称(可以指定对应的版本号如 docker pull centos:centos7)
3.1 配置加速器否则很慢,到/etc/docker 找到daemon.json
vi /etc/docker/daemon.json 输入 {"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]} 保存退出,重启docker systemctl restart docker
3.2 访问 https://hub.docker.com 查询对应镜像的版本
4 删除镜像 删除指定镜像 docker rmi IMAGE_ID(镜像ID)
删除所有镜像 docker rmi `docker images -q`
三 Docker容器操作
1查看容器
docker ps 查看正在运行的容器 docker ps -a 查看所有的容器
docker ps -l 查看最后一次运行的容器 docker ps -f status=exited 查看停止状态的容器
2 创建与启动容器
创建容器命令的参数说明 :docker run
-i : 表示运行容器
-t : 表示容器启动后会进入其命令行
--name :为创建的容器名称
-v : 表示宿主机和容器之间的目录映射关系
-d : 在run后面加上-d参数,则会创建一个守护式容器在后台运行,不会进入命令行
-p : 表示端口映射关系
3 交互式容器 docker run -it --name=mycentos centos:7 /bin/bash (一个镜像可以创建N个容器,容器名称不能一致,exit退出来会关机)
4 守护式容器 docker run -di --name=mycentos1 centos:7
进入守护式容器 docker exec -it mycentos1 /bin/bash (exit 退出来不会关机)
5 启动与停止容器 启动 docker start mycentos 停止 docker start mycentos1
6 文件拷贝(只支持宿主机和容器之间的拷贝,容器与容器之间不支持拷贝)
宿主机 --> 容器 docker cp /文件路径/文件名 mycentos:/拷贝的路径
容器 --> 宿主机 docker cp mycentos:/拷贝的路径 /文件路径/文件名
7 挂载目录 宿主机目录:容器目录 --privileged=true(解决权限不足问题)
docker run -di --name=mycentos2 -v /usr/local/mytest:/usr/local/mt --privileged=true centos:7
8 查看容器ip docker inspect mycentos
9 删除容器(已停止的容器) docker rm mycentos 删除所有容器 docker rm `docker ps -a -q`
四 部署应用
1 MySQL容器部署
1.1 拉取MySQL镜像 docker pull 镜像名称(可带版本号)
1.2 创建MySQL容器 docker run -di --name=wms_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.23
-p 表示端口映射 宿主机端口:容器端口
-e 表示环境变量 MYSQL_ROOT_PASSWORD是root用户的登录密码
1.3 本地通过Navicat连接,ip是宿主机的ip,端口是宿主机的端口
2 Tomcat容器部署
1.1 拉取Tomcat镜像 docker pull 镜像名称(可带版本号)
1.2 创建Tomcat容器 docker run -di --name=wms_tomcat -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps -p 8090:8080 --privileged=true tomcat:7
1.3 记得把数据库连接ip改成mysql容器的ip,页面访问通过访问宿主机的ip+端口进行访问
3 Nginx容器部署
1.1 拉取Nginx镜像 docker pull nginx
1.2 创建Nginx容器 docker run -di --name=wms_nginx -p 80:80 nginx
1.3 拷贝容器中/etc/nginx/nginx.conf的配置文件到宿主机/home/nginx目录中进行修改配置,然后再拷回去
拷出来 docker cp wms_nginx:/etc/nginx/nginx.conf nginx.conf
拷进去 docker cp nginx.conf wms_nginx:/etc/nginx
1.4 配置好重启nginx容器 docker restart wms_nginx
4 redis容器部署
1.1 拉取redis镜像 docker pull redis
1.2 创建redis容器 docker run -di --name=wms_redis -p 6379:6379 redis
五 备份与迁移
1 容器保存为镜像 docker commit wms_nginx mynginx(镜像名称)
2 把镜像导出备份 docker save -o mynginx.tar(备份文件名) mynginx(镜像名称) -o表示输出
3 把备份的镜像还原回去 docker load -i mynginx.tar -i表示输入