Docker 实战
2021-01-12 20:50
686 查看
Docker入门
概述
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
注意事项
- Linux内核版本必须大于:3.8.+
- 查看内核版本:uname -r
FROM centos:7 ADD jdk-8u211-linux-x64.tar.gz /usr/local RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk ENV JAVA_HOME=/usr/local/jdk ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$P 1044 ATH ADD apache-tomcat-8.5.35.tar.gz /usr/local RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat EXPOSE 8080 ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"] 启动容器 docker run -itd -p 80:8080 -v /root/test/ROOT:/usr/local/tomcat/webapps/ROOT mycentos:jdk /bin/bashView Code
构建nginx
1、dockerfile FROM centos:7 ADD nginx-1.18.0.tar.gz /usr/local COPY nginx_install.sh /usr/local RUN sh /usr/local/nginx_install.sh EXPOSE 80 2、sheel脚本,vi nginx_install.sh #!/bin/bash yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel cd /usr/local/nginx-1.18.0 ./configure --prefix=/usr/local/nginx && make && make install 3、构建dockerfile docker build -t mycentos:nginx . 4、启动,-p 宿主port:容器port # -p 映射端口 docker run -itd -p 80:80 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;" 5、进入容器 docker exec -it xxx /bin/bash 6、查看防火墙 firewall-cmd --state 7、停止防火墙 systemctl stop firewalld.service 8、禁止防火墙开机启动 systemctl disable firewalld.service 9、开启防火墙 systemctl start firewalld.service注:如果访问不到,查看防火墙是否开启
构建Redis
1、编辑:vi redis_install.sh #!/bin/bash yum install -y gcc gcc-c++ make openssl openssl-devel cd /home/redis-4.0.11 make && make PREFIX=/usr/local/redis install mkdir -p /usr/local/redis/conf/ cp /home/redis-4.0.11/redis.conf /usr/local/redis/conf/ sed -i '69s/127.0.0.1/0.0.0.0/' /usr/local/redis/conf/redis.conf sed -i '88s/protected-mode yes/protected-mode no/' /usr/local/redis/conf/redis.conf 2、编写dockerfile FROM centos:7 ADD redis-4.0.11.tar.gz /home COPY redis_install.sh /home RUN sh /home/redis_install.sh ENTRYPOINT /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf 3、构建容器: docker build -t mycentos:redis . 4、启动容器: #6380是宿主机端口,6379是容器的端口 docker run -itd -p 6380:6379 mycentos:redis 5、进入容器 docker exec -it xxx /bin/bash 6、测试redis /usr/local/redis/bin/redis-cli
构建Mysql
方式一
1、docker 拉取mysql5.7 docker pull mysql:5.7 2、官网地址 https://hub.docker.com/ 3、启动mysql docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 4、进入容器 docker exec -it some-mysql env LANG=C.UTF-8 /bin/bash 5、进入mysql mysql -uroot -proot 6、创库 create database `db_student`; 7、进入库 use db_student; 8、建表 drop table if exists `user`; CREATE TABLE user ( id tinyint(5) zerofill auto_increment not null comment '学生学号', name varchar(20) default null comment '学生姓名', age tinyint default null comment '学生年龄', class varchar(20) default null comment '学生班级', sex char(5) not null comment '学生性别', unique key (id) ) engine=innodb charset=utf8; 9、插入几条记录 insert into user values('1','小明','15','初三','男'); insert into user values('2','小红','13','初二','女');
< 56c p>
方式二
1、编辑:init.sql vi init.sql create database `db_student`; use db_student; drop table if exists `user`; CREATE TABLE user ( id tinyint(5) zerofill auto_increment not null comment '学生学号', name varchar(20) default null comment '学生姓名', age tinyint default null comment '学生年龄', class varchar(20) default null comment '学生班级', sex char(5) not null comment '学生性别', unique key (id) ) engine=innodb charset=utf8; insert into user values('1','小明','15','初三','男'); 2、编写dockerfile vi dockerfile FROM mysql:5.7 WORKDIR /docker-entrypoint-initdb.d ENV LANG=C.UTF-8 ADD init.sql . 3、构建镜像 docker build -t my-mysql:5.7 . 3、启动mysql docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d my-mysql:5.7 4、进入容器 docker exec -it some-mysql env LANG=C.UTF-8 /bin/bash 5、进入mysql mysql -uroot -proot 6、切换库 use db_student; 7、查看 select * from user;
相关文章推荐
- 【云星数据---mesos实战系列002】:mesos全分布式部署实战007--mesos集成docker方案
- docker 实战
- Spring Cloud与Docker微服务架构实战简单学习笔记(一)
- docker 启动 mysql ; nginx;php 镜像 以及链接实战
- Ubuntu Server下Docker实战 02: Docker进阶配置
- Docker实战:更轻松、更愉快、更高效
- Docker 学习笔记(一) Docker实战入门以及Dockerfile
- 老司机实战Windows Server Docker:2 docker化现有iis应用的正确姿势
- SUSE Portus + Docker Registry在Rancher环境下的部署实战
- Docker实战(五):Docker安装Tomcat
- Docker技术入门与实战(四)
- docker的基础面纱之实战脉冲云
- 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)
- Docker实战(二):容器使用和镜像制作
- 【实战】Docker Machine + Compose + Swarm
- Docker-compose实战——Django+PostgreSQL
- Docker 入门到实战教程(二)安装Docker
- Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
- 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典
- 写一个 docker 实战一个系列手册