写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~
编程路漫漫,学习无止尽!
Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像(镜像称为容器,启动是非常快速)
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
环境:Linux 系统
1、检查内核版本,必须是3.10及以上
uname -r2、安装docker
yum install docker3、启动docker
systemctl start docker4、停止docker
systemctl stop docker位于软件商店(如下图) 成功安装如下
修改 /etc/docker/daemon.json ,写入如下内容(如果文件不存在新建该文件)
vim /etc/docker/daemon.json内容:
{ "registry-mirrors":["http://hub-mirror.c.163.com"] }国内镜像源 地址 Docker 官方中国区 https://registry.docker-cn.com 阿里云 https://pee6w651.mirror.aliyuncs.com
Docker官网网址
见上图
1、搜索镜像
docker search tomcat2、拉取镜像
docker pull tomcat3、根据镜像启动容器
docker run --name mytomcat -d tomcat:latest4、查看运行中的容器
docker ps5、 停止运行中的容器
docker stop 容器的id6、查看所有的容器
docker ps -a7、启动容器
docker start 容器id8、删除一个容器
docker rm 容器id9、启动一个做了端口映射的tomcat
docker run -d -p 8888:8080 tomcat-d:后台运行 -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
10、linux的防火墙 service firewalld status 查看防火墙状态 service firewalld stop 关闭防火墙
11、查看容器的日志
docker logs container-name/container-id更多指令参考
1、查看所有开启的端口 firewall-cmd --list-ports (阿里云需要配置安全组规则)
2、查看firewall服务状态 systemctl status firewalld 开启 service firewalld start 重启 service firewalld restart 关闭 service firewalld stop
3、查看防火墙规则 查看全部信息 firewall-cmd --list-all 只看端口信息 firewall-cmd --list-ports
4、开启防火墙端口 firewall-cmd --zone=public --add-port=9000/tcp --permanent
命令含义: --zone 作用域 --add-port=80/tcp 添加端口,格式为:端口/通讯协议 --permanent 永久生效,没有此参数重启后失效
5、重启防火墙 systemctl restart firewalld.service
6、检测JDK 版本信息 rpm -qa | grep jdk
7、卸载 jdk rpm -e --nodeps jdk
8、安装 jdk rpm -ivh rpm包
参考链接
linux 内置防火墙 阿里云安全组 是否开放端口
名称重用
docker: Error response from daemon: Conflict. The container name "/mysql04" is already in use by container "084b3101709d46ee70ab372f3ecf36a1db4fd8aff7c594c885e". You have to remove (or rename) that container to be able to reuse that name.端口重用
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql04 (8653acd17133b5d948ac7a91c8eddd8a31a34ba88831b): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use. docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql03 (6b7379d2dba65865373362dba75b2c8d94e6c31a2b3ca0f898): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.4:3306 ! -i docker0: iptables: No chain/target/match by that name.