---------------------docker----------------------
systemctl status docker 查看docker状态
systemctl start docker 启动docker
systemctl restart docker 重启docker
systemctl stop docker 停止docker
systemctl enable docker 自启docker
docker info docker信息
ps -ef | grep docker 查看进程
docker --help 查看docker命令帮助文档
-------------------image---------------------------
docker search 镜像名称
docker images 查看本地镜像 REPOSITORY 镜像名称 TAG 版本 IMAGE ID 镜像ID CREATED 创建镜像的时间 SIZE 大小
docker pull mysql:5.7 … 拉取镜像 网址 hub.docker.com
删除镜像
docker rmi 镜像ID
docker rmi 镜像名字 (镜像名字 IMAGE-----> 名字:版本)
删除所有镜像(删库跑路作用!)
docker rmi docker images -q
----------------------容器------------------------
docker ps -l 查看最后一次运行的容器
docker ps 查看运行的容器
docker ps -a 查看所有的容器
docker exec -it [容器名|容器ID] /bin/bash 进入容器(交互式和守护式通用的!)
docker stop $(docker ps -q) 停用所有运行的容器
docker rm $(docker ps -aq) 删除全部容器
docker rm [容器名|容器ID] 删除单个容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq) 一条命令实现停止并删除全部容器
docker start [容器名|容器ID] 启动容器
docker status [容器名|容器ID] 查看容器状态
docker logs -f [容器名|容器ID] 查看容器日志
交互式容器======
docker run -it --name=mycentos7-1(取什么名字) centos:7 (IMAGE 镜像名字:TAG) 交互式容器创建 创建完即运行!退出即停止!
exit 交互式容器退出(退出会停止)
守护式容器====
1.创建完成后。马上在后台运行
docker run -di --name=mysql(取什么名字) centos:7 (IMAGE 镜像名字或者ID)
2.不会进入容器内部!
3.退出 exit 还是在后台运行。
登录守护式容器方式:
docker exec -it 容器名称 (或者容器ID) /bin/bash
容器拷贝文件=======
1.从宿主机拷贝到容器
docker cp 宿主机文件 容器id【名称】:/root 【拷到容器的哪个位置】
pwd 查看目录
ls 查看目录
2.从容器拷贝到宿主机
docker cp 容器id:拷贝的文件 ./ 【宿主机保存的位置】
cat 文件名字 查看txt内容!
总结:容器停止状态也可以进行文件拷贝!
--------------------------------挂载------------------------------------------
#docker 和宿主机的目录或者文件挂载
#宿主机的目录或者文件改变 容器也会跟着变
docker images
###目录挂载
docker run -it --name=mycentos7_3 -v /root/feifei/:/root/ 【要挂载目录】 centos:7
【守护式 -di】
---------------------------查看ip-----------------------
docker inspect [容器名|容器ID]
docker inspect tomcat
docker inspect nginx
docker inspect [容器名|容器ID] | grep IPAddress
---------------删除--------------------
正在运行的容器不能直接删。(如果要删除,强制删除,不推荐)
docker stop [容器名|容器ID] 停止容器
docker rm [容器名|容器ID] 正常删除
docker rm -f [容器名|容器ID] 强制删除
=====================================================================================
创建的容器都需要【统一】
注意:1.需要开放端口:
2.或者关闭防火墙
防火墙:
systemctl start firewalld 开启防火墙
systemctl stop firewalld 关闭防火墙
systemctl enable firewalld 开启自启动防火墙
systemctl disable firewalld 关闭开机自启动防火墙
systemctl status firewalld 显示防火墙状态
开放端口:
firewall-cmd --zone=public --add-port=[端口]/tcp --permanent 永久的向公共区域添加端口号
firewall-cmd --reload 重新加载新的规则
firewall-cmd --list-all 显示所有添加到端口号
------------------------------创建mysql容器----------------------------------------
细节:1.创建mysql容器需要映射端口。默认是3306
2.需要指定用户的root密码: -e MYSQL ROOT PASSWORD=123456 #大写 可以看官网
docker images
docker run -di --name=[取的名字] -p 3306:3306 -e MYSQL ROOT PASSWORD=[密码] [容器名|容器ID]
-p 3306:3306 映射端口 宿主机的端口:容器写死端口
-e 环境变量: -e MYSQL ROOT PASSWORD=[密码]
注意:1.需要开放端口:
2.或者关闭防火墙
---------------------------------创建tomcat------------------------------------
docker run -di --name=[取的名字] -p 8080:8080 [容器名|容器ID] 创建tomcat容器
docker logs -f [容器名|容器ID] 查看所有日志
docker logs -f --tail=[行数] [容器名|容器ID] 查看最后[行数]日志
【注意】: 如果需要跑项目 可以通过拷贝项目放到容器 或者挂载目录
-----------------------------------创建Nginx-------------------------------------------
docker pull nginx 默认拉取的是最新的
docker run -di --name=[取的名字] -p 80:80 [容器名|容器ID]
ll 目录 查看这个目录下的所有目录和文件 ll ./root/
---------------------------------------创建redis---------------------------------------------
docker pull redis 拉取最新
docker run -di --name=[取的名字] -p 6379:6379 [容器名|容器ID]
【redis注意:生产环境:key *】
---------------------------------------------rabbitmq-----------------------------------------------------
docker images
docker pull rabbitmq:management
docker run -di --name=[取的名字] -p 15671:15671 -p 15672:15672 -p 4369:4369 -p 5671:5671
-p 5672:5672 -p 25672:25672 [容器名|容器ID]
-----------------------------------es-------------------------------------------------------------
拉取找官网
docker images
docker run -di --name=[取的名字] -p 9200:9200 -p 9300:9300 [容器名|容器ID]
跨域:
docker exec -it [容器名|容器ID] /bin/bash
ls 查看
把yml文件上传到容器中
docker cp ./elasticsearch.yml [上传的文件] [容器名|容器ID] :【拷到容器的哪个位置】
docker logs -f [容器名|容器ID]
linux系统调优
修改 /etc/security/limits.conf 追加内容
------------------------------------------------------docker的备份的迁移-------------------------------------------
1.把容器从docker保存到宿主机1。
2.再把容器拷贝到宿主机2
3.再使用命令把容器 导入到宿主机2的docker中
(1)先停掉
(2) 先把容器变成镜像 docker commit [容器名|容器ID] 新镜像名字
(3)保存 docker save -o 保存的文件 新镜像名字 ###### docker save -o mynginx.tar mynginx2
(4) 把tar复制到宿主机2 然后把tar变成镜像 docker load -i ./mynginx.tar 把tar文件变成镜像
(5) 创建容器 docker run -di --name=[取的名字] -p 端口:端口 [容器名|容器ID]
-----------------------------------------------构建镜像----------------------------------------------------------------
mikdir docker 创建目录
–Dockerfile 脚本 用来创建镜像
touch Dockerfile 创建Dockerfile 文件
把jdk1.8放到docker目录
vi Dockerfile
FROM centos:7 #基于centos7上创建一个centos7
MAINTAINER thh #名字
RUN mkdir /usr/root #容器中创建目录
#拷贝文件到容器中并自动解压
ADD jdk压缩包 /usr/root/
#设置工作目录
WORKDIR /usr/root
#设置jdk的环境变量
ENV JAVA_HOME /usr/root/jdk…
ENV JRE_HOME /usr/root/jdk…/jre
ENV path
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
ENV path
J
R
E
H
O
M
E
/
b
i
n
:
JRE_HOME/bin:
JREHOME/bin:PATH
:wq 保存
docker build -t-‘myjdk1.8’
把jar拷贝到容器中
然后可以跑起来
java -jar [jar包名字]
----------------------------------------私服搭建------------------------------------------------
docker pull registry 拉取私服
docker run -di --name=[取的名字] -p5000:5000 [镜像名字|镜像id]
1.设置ip
修改 daemon.json
vi /etc/docker/daemon.json
{“innsecure-registries:[192.168.138.128:5000]”}
systemctl restart docker 重启docker
2.镜像打标签
1.标记次镜像为私服镜像
docker tag jdk1.8 192.168.138.128:5000/jdk1.8
2.再次启动私服容器
docker start registry
(3.)推上去(上传)
docker push registry 192.168.138.128:5000/jdk1.8
(4)拉下来(下载)
docker pull registry 192.168.138.128:5000/jdk1.8