window docker安装配置和环境搭建

Docker下载与安装

https://download.csdn.net/download/chaihuichen/13107255

Docker 安装时会自动在 host 上创建三个网络,我们可用 docker network ls 命令
none模式,使用–net=none指定,该模式关闭了容器的网络功能。
host模式,使用–net=host指定,容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
bridge模式,使用–net=bridge指定,默认设置 ,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。
container模式,使用–net=container:NAME_or_ID指定,创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。

查看容器网络;

$ docker inspect 9582dbec7981
docker network inspect bridge
查看某个网络详情:
docker network inspect 网络ID
删除某个网络 :
docker network remove 网络id

docker中启动所有容器的命令
docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)
docker中关闭所有容器的命令
docker stop $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)

如需删除所有的容器

docker rm -f ${docker pa -a -q}

docker 删除缓存
docker system prune --volumes
----------------bridge网络策略模式-------------------
创建bridge网络
docker network create -d bridge esnetwork
两个容器通过bridge网络互连,这里以es和kibana为列
docker network connect esnetwork es
docker network connect esnetwork kibana

------------ 添加路由(宿主机访问容器)
–容器ip:172.17.0.0
–宿主机掩码:255.255.252.0
–容器网关ip:192.168.99.100
ROUTE add 172.17.0.0 mask 255.255.252.0 192.168.99.100

docker run --name redis --net=host -itd 63dc6598fe3c /bin/bash
docker run --name jdk8 --net=host -itd c6f21aa19c07 /bin/bash
------------win7安装-----------
设置镜像存储地址,安装前设置环境变量
MACHINE_STORAGE_PATH=F:\docker\machine

复制iso文件到MACHINE_STORAGE_PATH下的cache中,删除certs和machines
断开网络,启动vm和start


–查看版本
docker version

–概念
image是静态的,类比为面向对象就是一个类
container是动态运行的,类比为面向对象就是一个实例化的对象.
– 运行容器
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
docker run <相关参数> <镜像 ID> <初始命令>
其中,相关参数包括:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

–下载并安装centos最新版本镜像
输入命令docker pull centos

–查看已安装镜像
命令:docker images

–创建并运行容器
命令:docker run -d -i -t 9f38484d220f /bin/bash
命令格式:docker run -d -i -t /bin/bash
docker run --name my-cnt-centos-6.7 -itd -p 80:80 <镜像> /bin/bash
执行完命令后,在命令下方会出现容器ID。

–查看运行的容器:
docker ps
docker ps -a

–进入使用容器
命令:docker exec -it 6c928 bash
或则:docker exec -it <容器id> /bin/bash
在此处容器的ID只输入前5位,系统会自动识别容器ID
命令格式:docker exec -it bash

–删除镜像
使用docker rmi命令删除镜像
docker rmi -f {image id}
例如,删除刚才安装的nginx:latest,docker rmi -f nginx:latest或docker rmi -f 9e988ed19567。

–停止容器
使用docker stop命令,官方文档,格式:
docker stop [options] container
停止my_nginx容器:docker stop my_nginx

– 重启容器
docker start my_nginx

– 删除容器
删除容器前,必须先停止容器。删除命令:
docker rm my_nginx

– 复制文件
通过 docker cp 命令将宿主机器的 war 包上传到容器中的 tomcat 的 webapps 目录下
docker cp DockerDemo.war mytomcat:/usr/local/tomcat/webapps

– 编辑Dockerfile文件内容
#建立一个新的镜像文件,配置模板:意思就是我新建立的镜像是以centos为基础模板的。因为jdk必须运行在操作系统之上
from centos
#配置作者信息 作者名 作者邮箱
MAINTAINER chench 1211566599@qq.com
#创建一个新目录来存储jdk文件
RUN mkdir /usr/local/java
#将jdk压缩文件复制到镜像中,它将自动解压缩tar文件
ADD server-jre-8u221-linux-x64.tar.gz /usr/local/java/
#创建同步链接 保持同步:ln -s 源文件 目标文件
RUN ln -s /usr/local/java/jdk1.8.0_221 /usr/local/java/jdk

设置环境变量

ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME J A V A H O M E / j r e E N V C L A S S P A T H . : {JAVA_HOME}/jre ENV CLASSPATH .: JAVAHOME/jreENVCLASSPATH.:{JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH

FROM centos
RUN yum install wget
RUN wget -O redis.tar.gz “http://download.redis.io/releases/redis-5.0.3.tar.gz”
RUN tar -xvf redis.tar.gz
以上执行会创建 3 层镜像。可简化为以下格式:
FROM centos
RUN yum install wget
&& wget -O redis.tar.gz “http://download.redis.io/releases/redis-5.0.3.tar.gz”
&& tar -xvf redis.tar.gz
---------------]

EXPOSE 8081
EXPOSE 8080 #暴露镜像的端口供主机做映射,启动镜像时,使用-P参数来讲镜像端口与宿主机的随机端口做映射
WORKDIR /dev/ #在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
CMD ["/bin/bash"] #启动容器的时候,进入到/bin/bash这种命令行
– 制作镜像
cmd控制台进入该工作路径下
命令:docker build -t=“centos-jdk” .(后边的 . 不能少)
docker build -t jdk:8 .
docker build -f /path/to/a/Dockerfile .

–将容器保存为镜像
docker commit 容器名 镜像名

–镜像备份与迁移
我们可以通过save命令将镜像打包成文件,拷贝给别人使用
docker save -o 保存的文件名 镜像名
docker save -o ./ubuntu.tar ubuntu
docker load -i ./ubuntu.tar
------------------------------创建共享卷----------------------------
docker run -itd --privileged=true --restart always --name shareDisk -v /f/docker/chench:/usr/local/chench -it centos:8 /bin/bash
------win7-------
配置共享目录:\CHENCAIHUI\chench
共享文件夹路径:\CHENCAIHUI\chench
共享文件夹名称:f/docker/chench

------------------------------ jdk------------------------------
进入Dockerfile文件目录
docker build -t=“jdk8” .

------------------------------ redis------------------------------
–安装镜像
docker pull redis:6.0.8

./src/redis-cli -h 指定ip -p 指定端口 -a 指定密码

docker cp redis.conf redis:/usr/local/redis-6.0.8/
docker cp redis-6.0.8.tar.gz redis:/usr/local/

docker run --name redis -itd 63dc6598fe3c /bin/bash
docker run --name redis6373 -p 6373:6373 -itd 069ae54dc1dd /bin/bash

make install PREFIX=/usr/local/redis-6.0.8
tar -zxvf
到src目录启动
./redis-server /usr/local/redis-6.0.8/redis.conf
redis-server /etc/redis/redis.conf
建立软连接
ln -s /usr/local/redis-6.0.8/src/redis-server /usr/bin/redis-server
开机启动
cp /usr/local/redis-6.0.8/redis.conf /etc/redis/6373.conf
cp /usr/local/redis-6.0.8/utils/redis_init_script /etc/init.d/redis
cp /etc/redis/redis_init_script /etc/init.d/redis
chmod 777 /etc/init.d/redis
chmod +x /etc/init.d/redis
chkconfig redis on

–创建容器
docker run --privileged=true --net=host --restart always --name redis -v /f/docker/chench/redis/conf:/etc/redis -v /f/docker/chench/redis/data:/data -itd redis:6 /bin/bash
docker run --privileged=true --net=host --restart always --name redis -v /f/docker/chench/redis/conf:/etc/redis -v /f/docker/chench/redis/data:/data -itd redis:6 redis-server /etc/redis/redis.conf --appendonly yes
docker exec -it 71ffe22a0d7a /bin/bash

docker logs -f redis

-d -> 以守护进程的方式启动容器
-p 6379:6379 -> 绑定宿主机端口
–name myredis -> 指定容器名称
–restart always -> 开机启动
–privileged=true -> 提升容器内权限
-v /root/docker/redis/conf:/etc/redis/redis.conf -> 映射配置文件
-v /root/docker/redis/data:/data -> 映射数据目录
–appendonly yes -> 开启数据持久化

-------------------------------------mysql--------------------------------------------
–安装镜像
docker pull mysql:5.7
–创建容器
–指定net会导致-p失效
docker run --privileged=true --net=host --restart always --name mysql -v /f/docker/chench/mysql/conf:/etc/mysql/conf.d -v /f/docker/chench/mysql/logs:/logs -v /f/docker/chench/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --innodb-use-native-aio=0

–解决window共享问题
–innodb-use-native-aio=0

docker exec -it 67111e9d0719 /bin/bash
docker logs -f mysql

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

show global variables like ‘port’;
--------------------------------------------------部署jar----------------------------------------------------
docker run --name jdk8-1 --net=host -itd 23b663cddc99 /bin/bash
docker run --name jdk8-1 -itd 23b663cddc99 /bin/bash
docker exec -it fb2b71850779 /bin/bash

java -jar D:/zuul/2/wservice-webapi-0.0.1-SNAPSHOT.jar --server.port=6632
–spring.profiles.active=
clean package -Dmaven.test.skip=true

–创建网络
docker network create --subnet=172.33.0.0/16 cchnet
–设置固定ip
docker run -d --restart always --net cchnet --ip 172.33.0.2 -p 6622:6622 --name wserver-2 -it --volumes-from shareDisk jdk:8 java -jar /usr/local/chench/jar/wservice-server-backup-0.0.1-SNAPSHOT.jar
–通过共享卷发布jar,会很慢
docker run -itd --privileged=true --net=host --restart always --name wserver-1 --volumes-from shareDisk jdk:8 java -jar /usr/local/chench/jar/wservice-server-0.0.1-SNAPSHOT.jar

停止所有的容器:docker stop $(docker ps -aq)
查看挂载情况:docker inspect wserver-1 | grep Mounts -A 20
查看启动日志 :docker logs --tail 1000 -f wconfig-1
docker update –-restart=always wserver-1
wserver-1 : 你的容器名称
当前用户运行容器: --user $(id -u U S E R ) : {USER}): USER):(id -g ${USER})

–清理缓存
docker system prune --volumes

-m 100m
-m 1G
-e JAVA_OPTS=’-Xmx100m’
-m 100M -e JAVA_OPTIONS=’-Xmx100m’
–dns 114.114.114.114
docker update -m 500m 70df301b7d1e
java -jar -Xms50m -Xmx50m
docker exec -it 71ffe22a0d /bin/bash

docker run -itd --privileged=true --net=host --restart always --name jdk8 --volumes-from shareDisk jdk:8 /bin/bash

--------------------部署wserver-1------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wserver-1 --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-server-0.0.1-SNAPSHOT.jar wserver-1:/usr/local/java/chench.jar
docker commit wserver-1 wserver:1
docker stop wserver-1
docker start wserver-1
docker restart wserver-1
docker rm wserver-1

docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd -itd --privileged=true --net=host --restart always --name wserver-1 wserver:1 java -Dfile.encoding=utf-8 -jar -Xms100m -Xmx100m /usr/local/java/chench.jar
docker logs --tail 500 -f wserver-1

--------------------部署wserver-2------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wserver-2 --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-server-backup-0.0.1-SNAPSHOT.jar wserver-2:/usr/local/java/chench.jar
docker commit wserver-2 wserver:2
docker stop wserver-2
docker start wserver-2
docker restart wserver-2
docker rm wserver-2
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd -itd --privileged=true --net=host --restart always --name wserver-2 wserver:2 java -Dfile.encoding=utf-8 -jar -Xms100m -Xmx100m /usr/local/java/chench.jar
docker logs --tail 500 -f wserver-2

--------------------部署wconfig-1------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wconfig-1 --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-config-0.0.1-SNAPSHOT.jar wconfig-1:/usr/local/java/chench.jar
docker commit wconfig-1 wconfig:1
docker stop wconfig-1
docker start wconfig-1
docker restart wconfig-1
docker rm wconfig-1
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd -itd --privileged=true --net=host --restart always --name wconfig-1 wconfig:1 java -Dfile.encoding=utf-8 -jar -Xms50m -Xmx50m /usr/local/java/chench.jar
docker logs --tail 500 -f wconfig-1

--------------------部署wconfig-2------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wconfig-2 --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-config-backup-0.0.1-SNAPSHOT.jar wconfig-2:/usr/local/java/chench.jar
docker commit wconfig-2 wconfig:2
docker stop wconfig-2
docker start wconfig-2
docker restart wconfig-2
docker rm wconfig-2
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd -itd --privileged=true --net=host --restart always --name wconfig-2 wconfig:2 java -Dfile.encoding=utf-8 -jar -Xms50m -Xmx50m /usr/local/java/chench.jar
docker logs --tail 500 -f wconfig-2

--------------------部署woauth------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name woauth --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-oauth-0.0.1-SNAPSHOT.jar woauth:/usr/local/java/chench.jar
docker commit woauth woauth:1.0
docker stop woauth
docker start woauth
docker restart woauth
docker rm woauth
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name woauth woauth:1.0 java -jar -Xms200m -Xmx200m /usr/local/java/chench.jar
docker logs --tail 500 -f woauth

--------------------部署gateway------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wgateway --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-gateway-0.0.1-SNAPSHOT.jar wgateway:/usr/local/java/chench.jar
docker commit wgateway wgateway:1.0
docker stop wgateway
docker start wgateway
docker restart wgateway
docker rm wgateway
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wgateway wgateway:1.0 java -jar -Xms100m -Xmx100m /usr/local/java/chench.jar
docker logs --tail 1000 -f wgateway

--------------------部署client------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wclient --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-client-0.0.1-SNAPSHOT.jar wclient:/usr/local/java/chench.jar
docker commit wclient wclient:1.0
docker stop wclient
docker start wclient
docker restart wclient
docker rm wclient
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wclient wclient:1.0 java -jar -Xms50m -Xmx50m /usr/local/java/chench.jar
docker logs --tail 1000 -f wclient

--------------------部署wclientapi------------------------
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wclientapi --volumes-from shareDisk jdk:8 /bin/bash
docker cp ./chench/jar/wservice-api-0.0.1-SNAPSHOT.jar wclientapi:/usr/local/java/chench.jar
docker commit wclientapi wclientapi:1.0
docker stop wclientapi
docker start wclientapi
docker restart wclientapi
docker rm wclientapi
docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name wclientapi wclientapi:1.0 java -jar -Xms50m -Xmx50m /usr/local/java/chench.jar
docker logs --tail 1000 -f wclientapi

-Dfile.encoding=utf-8
-Xms50m -Xmx50m
-m 50M --oom-kill-disable
–tail 100:显示最后100行
docker logs -f --tail 100 容器名
--------------------------------------------------rabbitmq------------------------------------
docker pull rabbitmq:3.8.9-management

#-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_DEFAULT_VHOST=my_vhost
docker run -itd --privileged=true --net=host --restart always --volumes-from shareDisk --name rabbitmq rabbitmq:3.8.9-management

http://192.168.99.100:15672/
guest/guest

------------------------------tomcat8------------------------------
docker restart tomcat8

docker run --add-host=localhost1:192.168.99.100 --add-host=localhost2:192.168.99.100 -itd --privileged=true --net=host --restart always --name tomcat8 --volumes-from shareDisk jdk:8 /bin/bash
docker exec -it 71ffe22a0d7a /bin/bash
docker cp ./chench/apache-tomcat-8.5.59.tar.gz tomcat8:/usr/local/java
docker cp ./chench/server.xml tomcat8:/usr/local/java/apache-tomcat-8.5-3333/conf
docker cp ./chench/clear_tomcat_log.sh tomcat8:/home
cp /home/clear_tomcat_log.sh /etc/profile.d/
chmod 777 /etc/profile.d/clear_tomcat_log.sh
chmod +x /etc/profile.d/clear_tomcat_log.sh
chmod a-rwx /etc/profile.d/
–配置脚本启动
docker cp ./chench/start_tomcat.sh tomcat8:/home
cp /home/start_tomcat.sh /etc/profile.d/
chmod 777 /etc/profile.d/start_tomcat.sh
chmod +x /etc/profile.d/start_tomcat.sh
chmod a-rwx /etc/profile.d/

ps -ef|grep tomcat
–手动启动
cd /usr/local/java/apache-tomcat-8.5-3333/bin
./startup.sh
cd /usr/local/java/apache-tomcat-8.5-3333/logs
tail -f catalina.out

cd /usr/local/java/apache-tomcat-8.5-3333/bin
./shutdown.sh

docker cp ./chench/jar/chench.war tomcat8:/usr/local/java/apache-tomcat-8.5-3333/webapps/
cd /usr/local/java/apache-tomcat-8.5-3333/webapps/

rm -rf /usr/local/java/apache-tomcat-8.5-3333/webapps/*
docker cp tomcat8:/usr/local/java/apache-tomcat-8.5-3333/conf/server.xml ./chench

docker logs --tail 1000 -f tomcat8:/usr/local/java/apache-tomcat-8.5-3333/logs/catalina.out
docker logs --tail 1000 -f tomcat8:/usr/local/java/apache-tomcat-8.5-3333/logs/catalina.out

-------------------------centos8容器开机执行sh------------------------
1.将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下
\cp /usr/local/chench/jar/start-wserver-1.sh /etc/profile.d/

2.将脚本复制到/etc/init.d/
chkconfig mountmysidk.sh on

\cp /usr/local/java/jar/wserver1.sh /etc/init.d/
chkconfig start-wserver-1.sh on

\cp /usr/local/chench/jar/start-wserver-1.sh /etc/profile.d/
chmod 777 /etc/profile.d/start-wserver-1.sh
chmod +x /etc/profile.d/start-wserver-1.sh
chmod a-rwx /etc/profile.d/

------------ 添加路由(宿主机访问容器)----------------
–容器ip:172.17.0.0
–宿主机掩码:255.255.252.0
–容器网关ip:192.168.99.100
ROUTE add 172.33.0.0 mask 255.255.255.0 192.168.99.100

---------------------加速--------------------
docker-machine ssh default
sudo sed -i “s|EXTRA_ARGS=’|EXTRA_ARGS=’–registry-mirror=https://2xlftnxg.mirror.aliyuncs.com |g” /var/lib/boot2docker/profile
docker-machine env default
eval “$(docker-machine env default)”
docker info

–清理缓存
docker system prune --volumes


–安装ps软件
yum -y install procps
–安装linux软件
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel open openssl-devel
安装make:
yum -y install gcc automake autoconf libtool make
安装g++:
yum install gcc gcc-c++

–bash: service: command not found
yum list | grep initscripts
yum -y install initscripts
–ifconfig
yum -y install net-tools

docker save -o /wserver1.tar wserver:1
docker save -o /wserver2.tar wserver:2
docker save -o /wconfig1.tar wconfig:1
docker save -o /wconfig2.tar wconfig:2
docker save -o /woauth.tar woauth:1.0
docker save -o /wgateway.tar wgateway:1.0
docker save -o /jdk8.tar jdk:8
docker save -o /rabbitmq.tar rabbitmq:3.8.9-management
docker save -o /redis6.tar redis:6
docker save -o /mysql5.7.tar mysql:5.7
docker save -o /centos8.tar centos:8
docker save -o /tomcat8.5.tar tomcat:8.5

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chench3home

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值