Docker 容器技术
Docker 安装与启动
注意:因为 docker 需要联网操作,所以需要将虚拟机配置成 NAT 网络模式。Docker 必须安装在 centos7.0 以上
- 挂载资料中提供好的 docker-test 镜像 可以通过 ip addr 命令查看 Linux 系统 ip 地址
- 安装 docker yum install docker 通过 docker -v 查看安装的 docker 版本
- docker 启动与停止
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
Docker 镜像操作
-
列出镜像 docker images
-
配置使用镜像加速器提交拉取速度。修改/daemon.json 文件,vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
-
重启 docker systemctl restart docker
-
拉取 centos 镜像
docker pull centos:7
-
搜索镜像 搜索网络上镜像
//例如搜索tomcat docker search tomcat
-
删除镜像 **注意:**包起 docker images -q 命令的符合是~,是键盘上数字 1 左侧的符合。
1、 docker rmi IMAGE_ID:删除指定镜像 2、 docker rmi `docker images -q`:删除所有镜像
Docker 容器操作
-i:运行容器
-t:启动后进入命令行
--name=为创建的容器命名
-d:后台启动
-v:目录映射关系
-p:端口映射
-
创建交互式容器启动
// 当前版本 进入后需要执行的解释器 docker run -it --name=mycentos centos:7 /bin/bash 执行完该命令后,直接进入容器内部,退出通过exit,容器不能重名,一旦退出,容器也处于停止状态
-
创建守护式容器启动 命令:。 执行完该命令后,。。
//不进入容器内部 docker run -di --name=mycentos2 centos:7 //进入容器的命令:(exit退出时,容器不会停止) docker exec -it container_name (或者 container_id) /bin/bash
-
查看容器
//查看正在运行的容器:docker ps //查看所有的容器:docker ps -a
-
停止与启动容器
//停止容器:docker stop container_name/ID //启动容器:docker start container_name/id
-
删除容器 注意:只能删除停止的容器,正在运行的容器不能被删除
删除指定的容器:docker rm $CONTAINER_ID/NAME 删除所有容器:docker rm `docker ps -a -q`
部署应用
mysql 部署
-
拉取 mysql 镜像
docker pull mysql
-
创建 mysql 容器 (守护式)
// 宿主机端口:容器端口 容器mysql密码 镜像名
docker run -di --name=pinyougou_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- 进入 mysql 容器
docker exec -it pinyougou_mysql /bin/bash
-
在容器中登陆 mysql
进入命令:mysql -u root -p 退出mysql 命令:quit
-
远程登录 mysql **注意:**在 navicat 链接 mysql8 以后的版本时,会出现 2059 的错误,这个错误出现的原因是在 mysql8 之前的版本中加密规则为 mysql_native_password,而在 mysql8 以后的加密规则为 caching_sha2_password。解决此问题有两种方法,一种是更新 navicat 驱动来解决此问题,一种是将 mysql 用户登录的加密规则修改为 mysql_native_password。本文采用第二种方式。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';#更新一下用户的密码
FLUSH PRIVILEGES;#刷新权限
- 在 Navicat 中运行品优购建表语句的 sql 脚本文件,生成品优购数据库、表以及插入测试数据
- 查看容器 ip **注意:**在宿主机中查看,因为后续需要容器连接容器数据库
我们可以通过以下命令查看容器运行的各种数据
docker inspect pinyougou_mysql
也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' pinyougou_mysql
tomcat 部署
-
拉取 tomcat 镜像
//版本和tomcat中的环境 docker pull tomcat:7-jre7
-
运行 tomcat 容器
docker run -di --name pinyougou_tomcat -p 9000:8080 tomcat:7-jre7 //也可以用如下方式进行创建 这样将宿主机的/usr/local/myhtml文件夹映射到容器内的/usr/local/tomcat/webapps目录中,privilege是为了修改一些如/etc/sys里面的文件的时候才需要 docker run -di --name=pinyougou_tomcat -v /usr/local/myhtml:/usr/local/tomcat/webapps --privileged=true -p 9000:8080 tomcat:7-jre7
-
部署 web 应用 CAS 单点登录部署
1.修改 cas 系统的配置文件,修改数据库连接的 url
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" p:driverClass="com.mysql.jdbc.Driver" p:jdbcUrl="jdbc:mysql://172.17.0.3:3306/pinyougoudb?characterEncoding=utf8" p:user="root" p:password="123456" />
2.将 cas 文件夹上传至宿主机 通过 alt+p 进入上传窗口,上传 cas 文件夹
// -r 递归上传 put -r E:\item\pinyougou306\apache-tomcat-cas\webapps\cas
3.从宿主机中,将 cas 文件夹拷贝到到容器/usr/local/tomcat/webapps 目录
docker cp cas pinyougou_tomcat:/usr/local/tomcat/webapps
4.测试:地址栏输入:http://192.168.25.143:9000/cas/login 宿主机的 ip 地址
Nginx 部署
-
拉取 Nginx 镜像
docker pull nginx
-
创建 Nginx 容器
docker run -di --name=pinyougou_nginx -p 80:80 nginx
-
测试 Nginx 访问:http://192.168.25.143
-
配置反向代理 从容器拷贝配置文件到宿主机
//从容器拷贝反向代理文件到本地,修改后再拷贝回容器 默认挂载html目录: /usr/share/nginx/html docker cp pinyougou_nginx:/etc/nginx/nginx.conf nginx.conf
配置反向代理
upstream tomcat-cas {
server 172.17.0.6:8080;
}
server {
listen 80;
server_name passport.pinyougou.com;
location / {
proxy_pass http://tomcat-cas;
index index.html index.htm;
}
}
将修改后的配置文件拷贝到容器
docker cp nginx.conf pinyougou_nginx:/etc/nginx/nginx.conf
重启容器
docker restart pinyougou_nginx
通过 SwitchHosts 新增 ip 地址和域名绑定
192.168.184.88 passport.pinyougou.com
重新启动容器
docker restart pinyougou_nginx
Redis 部署
-
拉取 Redis 镜像
//拉取镜像 docker pull redis
-
创建 Redis 容器
docker run -di --name=pinyougou_redis -p 6379:6379 redis
- 在你的本地电脑命令提示符下,用 window 版本 redis 测试
redis-cli -h 192.168.247.135
备份与迁移
容器保存为镜像
容器名 保存的镜像名
docker commit pinyougou_nginx mynginx
镜像备份
文件名 容器名
docker save -o mynginx.tar mynginx
镜像恢复与迁移
测试删掉 docker rmi myniginx
//恢复加载镜像
docker load -i mynginx.tar
修改 ip 地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
查看版本
cat /etc/os-release
rpm -qa|grep docker -查看 docker
yum -y remove docker --删除 docker
rm -rf /var/lib/docker
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于