Docker

1.docker拉取镜像创建新的容器,有所修改后提交为新的镜像
1.拉取一个镜像
[root@localhost ~]# docker pull 10.30.5.120/docker/centos
Using default tag: latest
latest: Pulling from docker/centos
Digest: sha256:dc29e2bcceac52af0f01300402f5e756cc8c44a310867f6b94f5f7271d4f3fec
Status: Image is up to date for 10.30.5.120/docker/centos:latest
10.30.5.120/docker/centos:latest
2.创建一个容器(再前台运行的容器)
[root@localhost ~]# docker run --name centos1 --rm -it 10.30.5.120/docker/centos /bin/bash
[root@682712f2a2b8 /]# ifconfig
bash: ifconfig: command not found
[root@682712f2a2b8 /]# yum -y install net-tools //yum安装网络配置模块
[root@682712f2a2b8 /]# ifconfig   //使用的时候可以查看ip地址
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)
        RX packets 4846  bytes 11686752 (11.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3734  bytes 205329 (200.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.重新开启一个端口,提交为新的镜像
[root@localhost ~]# docker commit centos1 centos:net  //提交为新的镜像
sha256:7f169f2499a9e3faa8dc0077d8f02e5bcc95f888354ed1dc200083e6c8eb1246
[root@localhost ~]# docker images  //查看是否有新的镜像
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
centos                      net                 7f169f2499a9        4 seconds ago       289MB
10.30.5.120/docker/mysql    5.6                 57640f2e70a1        13 months ago       217MB
10.30.5.120/docker/centos   latest              75835a67d134        13 months ago       200MB
2.创建一个tomcat的镜像
[root@localhost ~]# mkdir tomcat
[root@localhost ~]# cd tomcat/

[root@localhost tomcat]# vim Dockerfile
FROM 10.30.5.120/docker/java
ADD apache-tomcat-8.5.35.tar.gz /opt
VOLUME /opt/apache-tomcat-8.5.35/webapps
CMD ["/opt/apache-tomcat-8.5.35/bin/catalina.sh","run"]

[root@localhost tomcat]# docker build -t tomcat:1.1 ./
Sending build context to Docker daemon  9.646MB
Step 1/4 : FROM 10.30.5.120/docker/java
 ---> d23bdf5b1b1b
Step 2/4 : ADD apache-tomcat-8.5.35.tar.gz /opt
 ---> Using cache
 ---> a16a39d65441
Step 3/4 : VOLUME /opt/apache-tomcat-8.5.35/webapps
 ---> Using cache
 ---> d08937b5756b
Step 4/4 : CMD ["/opt/apache-tomcat-8.5.35/bin/catalina.sh","run"]
 ---> Running in b9de9f9bce00
Removing intermediate container b9de9f9bce00
 ---> e957e53f7e1d
Successfully built e957e53f7e1d
Successfully tagged tomcat:1.1
[root@localhost tomcat]# docker run --name tomcat -d -p 8080:8080 tomcat:1.1 //基于tomcat镜像创建了一个容器
0939d93d0952c9ae522fb0d93179050be7a2dbb59c7534c1ee5ec329b62f26dc

 

 

3.创建一个tomcat镜像,基于tomcat镜像创建一个容器,上线solo博客
[root@localhost html]# docker run --name tomcat -d -p 8080:8080 -v /opt/html:/opt/apache-tomcat-8.5.35/webapps tomcat:1.1
b06ee8a6943cd162e25f834c2fa793d5bf63c587dc825f22c2729d1c66734a71

访问页面192.168.18.140:8080/solo 这是是错误的页面

 

 修改以下内容

 

 重启容器

出现以下页面就是成功上线solo博客

 

 

4.docker创建一个lnmp镜像,创建容器+上线wordpress

搭建一个lnmp的镜像并并创建一个容器

[root@localhost ~]# mkdir lnmp
[root@localhost ~]# cd lnmp
[root@localhost lnmp]# vim Dockerfile
FROM 10.30.5.120/docker/centos
ADD nginx-1.16.1.tar.gz /root/
RUN curl -s http://10.30.5.70:8000/repo.sh | /bin/bash && yum -y install make gcc gcc-c++ pcre-devel zlib-devel php php-mysql php-gd php-fpm \
    && cd /root/nginx-1.16.1 && ./configure && make && make install \
    && yum -y install epel-release && yum -y install supervisor

COPY lnmp.ini /etc/supervisord.d/
COPY nginx.conf /usr/local/nginx/conf/nginx.conf

CMD ["supervisord","-n"]

[root@localhost lnmp]# vim lnmp.ini 
##################################################
[program:nginx]
command=/usr/local/nginx/sbin/nginx -g "daemon off;"

[program:php-fpm]
command=/usr/sbin/php-fpm -F
##################################################

创建一个容器
[root@localhost ~] docker run --name lnmp -d -p 80:80 -v /opt/html1:/usr/local/nginx/html lnmp:1.1
[root@localhost ~]# cd /opt/html1  //在此路径下传入wordpress的安装包
[root@localhost html1]# unzip wordpress-4.9.4-zh_CN.zip //解压
[root@localhost html1]# chmod -R 777 ./ //给予权限

拉取数据库的镜像myslq:5.6

[root@localhost html1]# docker pull 10.30.5.120/docker/mysql:5.6
5.6: Pulling from docker/mysql
e64f6e679e1a: Pull complete 
b0e0af0b3f07: Pull complete 
4525fe57d487: Pull complete 
d3565df0a804: Pull complete 
Digest: sha256:0ba03586c705ca8f79030586a579001c4fab3d6fa8c388b6c1c37c695645b78e
Status: Downloaded newer image for 10.30.5.120/docker/mysql:5.6
10.30.5.120/docker/mysql:5.6

创建容器
[root@localhost html1]# docker run --name mysql-server -d -p 3306:3306 \
> -e MYSQL_ROOT_PASSWORD=123 \
> -e MYSQL_USER=tom \
> -e MYSQL_PASSWORD=123 \
> -e MYSQL_DATABASE=wordpress 10.30.5.120/docker/mysql:5.6

可以访问就是成功

 

4.docker部署harbor
[root@localhost ~]# yum -y install docker-ce vim lrzsz bash-completion
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start docker
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# rz
 //传入加速脚本
[root@localhost docker]#systemctl restart docker
[root@localhost docker]# cd /usr/local/sbin/
[root@localhost sbin]# rz
  //传入docker-compose
[root@localhost sbin]# chmod +x docker-compose
[root@localhost sbin]# cd /root
[root@localhost ~]# mkdir harbor
[root@localhost ~]# cd harbor/
 //用xftp传入harbor
[root@localhost harbor]# tar -zxf harbor-offline-installer-v1.8.1.tgz
[root@localhost harbor]# mv harbor /usr/local/
[root@localhost harbor]# cd /usr/local/harbor/

 

 

 

 

 

 

 

 在本地拉取centos镜像并在镜像内安装网络工具,并制作新的镜像,上传至harbor

[root@localhost ~]# docker pull 10.30.5.120/docker/centos
Using default tag: latest
latest: Pulling from docker/centos
aeb7866da422: Pull complete 
Digest: sha256:dc29e2bcceac52af0f01300402f5e756cc8c44a310867f6b94f5f7271d4f3fec
Status: Downloaded newer image for 10.30.5.120/docker/centos:latest
10.30.5.120/docker/centos:latest
[root@localhost ~]# docker run --name centos --rm -it 10.30.5.120/docker/centos /bin/bash  //创建一个新的容器,实在前台运行的
[root@e31b1ced69a7 /]# yum -y install net-tools  //下载网络工具
//新开一个新的窗口
[root@localhost ~]# docker commit centos centos:net
sha256:529a3bc1997a4257b2b46af51a2dffac91cecb0056472e813f0a001dedf4ca44
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# vim daemon.json 

{ "insecure-registries":["192.168.18.142"] }

[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker tag centos:net 192.168.18.142/1705a/centos:net  //在harbor的页面上一定要有1705a的项目
[root@localhost docker]# docker login 192.168.18.142
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost docker]# docker push 192.168.18.142/1705a/centos:net
The push refers to repository [192.168.18.142/1705a/centos]
5d22814d2969: Pushed 
f972d139738d: Pushed 
net: digest: sha256:1bbb7217b98fef7a6a0a92c3541e6a5667153c240f1886dfc14e2b5057778468 size: 741

出现下面的就是成功

 

 

5.docker-compose部署redis
[root@localhost redis]# vim redis.yml

version: "3"
services:
   redis1:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7001
     ports:
        - "7001:7001"
        - "17001:17001"

   redis2:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7002
     ports:
        - "7002:7002"
        - "17002:17002"
   redis3:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7003
     ports:
        - "7003:7003"
        - "17003:17003"
   redis4:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7004
     ports:
        - "7004:7004"
        - "17004:17004"
   redis5:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7005
     ports:
        - "7005:7005"
        - "17005:17005"
   redis6:
     image:  10.30.5.120/docker/redis-cluster
     environment:
        REDIS_PORT: 7006
     ports:
        - "7006:7006"
        - "17006:17006"
[root@localhost redis]# docker-compose -f redis.yml up -d

[root@localhost redis]# docker run --rm -it 10.30.5.120/docker/redis-trib create --replicas 1 192.68.18.140:7001 192.68.18.140:7002 192.68.18.140:7003 192.68.18.140:7004 192.68.18.140:7005 192.68.18.140:7006

[root@localhost redis]# docker-compose -f redis.yml exec redis1 /bin/bash

root@d59958361c54:/data# redis-cli -c -h 192.168.18.140 -p 7001
192.168.18.140:7001> cluster nodes
1a94f5fdc426a9a55d8d4c6a57f68729a15f1c55 172.21.0.1:7002@17002 master - 0 1574729775000 2 connected 5461-10922
fd33c4d135612600d9fac4f0e3708d795ebaa652 172.21.0.1:7006@17006 slave b3d938c087b12fbb25da69eaf01deb85fc1b5d0b 0 1574729775000 6 connected
b3d938c087b12fbb25da69eaf01deb85fc1b5d0b 172.21.0.1:7003@17003 master - 0 1574729774395 3 connected 10923-16383
ca049c14a48a536bbe9b403c2f40ecd14874036e 172.21.0.1:7005@17005 slave 1a94f5fdc426a9a55d8d4c6a57f68729a15f1c55 0 1574729775000 5 connected
1f6f6afaaeefa94c9e3ef2109ba3dca4fb0b1bf5 172.21.0.1:7004@17004 slave 61fc15466979d7a522aa7953889611878a0f6b14 0 1574729776429 4 connected
61fc15466979d7a522aa7953889611878a0f6b14 172.21.0.2:7001@17001 myself,master - 0 1574729774000 1 connected 0-5460

模拟其中一个redis故障
[root@localhost redis]# docker-compose -f redis.yml stop redis1
[root@localhost redis]# docker-compose -f redis.yml  exec redis2 /bin/bash
root@31fa9af6c6d2:/data# redis-cli -c -h 192.168.18.140 -p 7002
192.168.18.140:7002> cluster nodes
61fc15466979d7a522aa7953889611878a0f6b14 172.21.0.1:7001@17001 master,fail - 1574729953593 1574729952000 1 disconnected
1f6f6afaaeefa94c9e3ef2109ba3dca4fb0b1bf5 172.21.0.1:7004@17004 master - 0 1574730065588 7 connected 0-5460
fd33c4d135612600d9fac4f0e3708d795ebaa652 172.21.0.1:7006@17006 slave b3d938c087b12fbb25da69eaf01deb85fc1b5d0b 0 1574730064000 6 connected
1a94f5fdc426a9a55d8d4c6a57f68729a15f1c55 172.21.0.4:7002@17002 myself,master - 0 1574730063000 2 connected 5461-10922
b3d938c087b12fbb25da69eaf01deb85fc1b5d0b 172.21.0.1:7003@17003 master - 0 1574730065000 3 connected 10923-16383
ca049c14a48a536bbe9b403c2f40ecd14874036e 172.21.0.1:7005@17005 slave 1a94f5fdc426a9a55d8d4c6a57f68729a15f1c55 0 1574730065588 5 connected
6.docker-compose搭建zabbix
[root@localhost redis]# cd /root
[root@localhost ~]# mkdir zabbix
[root@localhost ~]# cd zabbix/
[root@localhost zabbix]# vim zabbix.yml

version: "3"
services:
   db:
     image: 10.30.5.120/docker/mysql:5.6
     environment:
       MYSQL_ROOT_PASSWORD: 123
       MYSQL_USER: tom
       MYSQL_DATABASE: zabbix
       MYSQL_PASSWORD: 123
     command: --character-set-server=utf8
     ports:
       - "3306:3306"
   zabbix-server:
     image: 10.30.5.120/docker/zabbix-server
     environment:
       DB_SERVER_HOST: db
       DB_SERVER_PORT: 3306
       MYSQL_DATABASE: zabbix
       MYSQL_USER: tom
       MYSQL_PASSWORD: 123
     ports:
       - "10051:10051"
     depends_on:
       - db
   zabbix-web:
     image: 10.30.5.120/docker/zabbix-web-apache
     environment:
       DB_SERVER_HOST: db
       DB_SERVER_PORT: 3306
       MYSQL_DATABASE: zabbix
       MYSQL_USER: tom
       MYSQL_PASSWORD: 123
       TZ: Asia/Shanghai
       ZBX_SERVER_HOST: zabbix-server
     ports:
       - "80:80"
     depends_on:
       - db
       - zabbix-server
   zabbix-agent:
     image: 10.30.5.120/docker/zabbix-agent
     environment:
       ZBX_SERVER_HOST: zabbix-server
     ports:
       - "10050:10050"
     depends_on:
posted @ 2019-12-23 20:50  陈豆豆鸭  阅读(88)  评论(0)    收藏  举报