docker部署与问题总结

    技术2022-07-16  83

    docker部署与问题总结

    环境Vmware

    这个地方只是做下安装vmware备注:

    版本 15.5.6 build-16341506linux 版本centos7.8shell连接工具:finalShell

    刚安装时,突然发现shell工具连接不到虚拟机里,解决方案:使虚拟机使用NAT方式,然后在 centos7 /etc/sysconfig/network-scripts\ifcfg-ens33

    ONBOOT="yes" TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLn="no" BOOTPROTO="dhcpOXY_METHOD="none" BROWSER_ONLY="no" #这里使用的是dhcp 自动获取ip地址的方式,我也使用static 但是我测试还有点问题,等以后我研究清楚了我再更#新下问题 BOOTPROTO="dhcp" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="c3233521-76e5-49d4-a65a-e7ab436cfd01" DEVICE="ens33" ONBOOT="yes"

    此时应该可以链接到外网,然后我们使用命令 ip addr 查看当前虚拟机ens33的 ip地址, 然后在宿主机里面的网络设置里面的 vmnet8里面 设置与虚拟机当前ip地址同一频段即可。现在再从shell工具即可链接了。

    docker环境搭建

    安装docker : yum install docker查看docker版本: docker -v启动docker:systemctl start docker停止docker:systemctl stop docker重启docker:systemctl restart docker查看docker状态:systemctl status docker开机启动:systemctl enable docker其他命令:docker info / docker --help

    docker镜像创建及操作

    搜索镜像: docker search 镜像名称 ustc镜像 加速拉取docker镜像的下载速度。 修改文件:vi /etc/docker/daemon.json 然后重启docker服务 { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } 拉取镜像: docker pull 镜像名称查看安装的镜像: docker images删除镜像: docker rmi $IMAGE_ID:删除指定镜像/ docker rmi docker images -q:删除所有镜像

    docker 容器创建及操作

    命令参数简介:  创建容器常用的参数说明:  创建容器命令:docker run  -i:表示运行容器  -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。  --name :为创建的容器命名。  -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。  -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。  -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射 -rm: 执行docker run命令带–rm命令选项,等价于在容器退出后,执行docker rm -v。也就是每次关闭,docker会自动清除容器。

    交互性容器:docker run -it --name=mycentos centos:7 /bin/bash 查看运行状态:docker ps -a查看所有容器,-l查看最后启动的容器,docker ps -f status=exited查看关闭的容器 此时使用exit 便退出了容器,也同时关闭了容器,所以平时不怎么使用交互性容器。

    守护式容器(后台运行) docker run -di -p8076 8076 --name=mycentos centos:7 注意:-p放在最后可能会出现异常,所以我放在了-di后面,这样可以正常运行。 登录容器: docker exec -it 容器名称或id /bin/bash

    容器重新启动:docker start/restart 容器名称

    容器关闭: docker stop 容器名称

    删除容器: docker rm $CONTAINER_ID/NAME/ 删除所有docker rm docker ps -a -q

    容器备份 恢复与迁移

    容器生成镜像: docker commit 容器名称 生成的镜像名称备份 docker save -o mynginx.tar mynginx -o是输出的文件名称恢复 docker load -i mynginx.tar

    其他

    nginx 容器 nginx配置文件在:/etc/nginx/nginx.conf 可能容器内无法使用vim命令所以需要安装vim 工具: apt-get update 完成之后 apt-get install vim 除了使用vim编辑配置文件外,还可以挂载宿主机覆盖容器的配置文件:

    docker run --name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx -v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx

    –name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器

    -p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定

    -v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面

    第三个-v 表示的和第一个-v意思一样的。

    -d 表示启动的是哪个镜像

    安装jdk8 yum install java-1.8.0-openjdk.x86_64

    容器内部拷贝文件: docker cp 本地文件地址 容器id:容器拷贝的地址

    mysql - 默认拉取是mysql8 docker run -di --name pinyougou_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql -e是环境变量

    备注: - ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;这里的password是你正在使用的密码 - ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';#更新一下用户的密码这里的password为你修改的新密码。 - FLUSH PRIVILEGES; #刷新权限,使自己的修改生效。 - use mysql; - alter user 'root'@'%' identified by '密码' password expire never; - alter user 'root'@'%' identified with mysql_native_password by '新密码'; - flush privileges; 完成

    防火墙 查看状态:firewall-cmd --state 停止:systemctl stop firewalld.service 禁止:systemctl disable firewalld.service

    查看端口 如果没有安装netstat:yum install net-tools 查看端口号:netstat -tunlp | grep 端口号

    Processed: 0.035, SQL: 9