(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装docker
sudo yum install docker-ce
ce:开源版(免费版)
ee:企业版(收费版)
1.12以后
(5)安装后查看docker版本
docker -v
ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
在该文件中输入如下内容:
vi /etc/docker/daemon.json
在该文件中输入如下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
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命令帮助文档
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 还是在后台运行
1.从宿主机拷贝到容器
docker cp 宿主机文件 容器id【名称】:/root 【拷到容器的哪个位置】
pwd 查看目录
ls 查看目录
docker exec -it [容器名|容器ID] /bin/bash 进入容器
2.从容器拷贝到宿主机
docker cp 容器id:拷贝的文件 ./ 【宿主机保存的位置】
cat 文件名字 查看txt内容!
总结:容器停止状态也可以进行文件拷贝!
docker 和宿主机的目录或者文件挂载 ,宿主机的目录或者文件改变 容器也会跟着变
目录挂载
docker run -it --name=mycentos7_3 -v /root/feifei/:/root/ 【要挂载目录】 centos:7
【守护式 -di】
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 显示所有添加到端口号
细节:
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.或者关闭防火墙
docker run -di --name=[取的名字] -p 8080:8080 [容器名|容器ID] 创建tomcat容器
docker logs -f [容器名|容器ID] 查看所有日志
docker logs -f --tail=[行数] [容器名|容器ID] 查看最后[行数]日志
【注意】: 如果需要跑项目 可以通过拷贝项目放到容器 或者挂载目录
docker pull nginx 默认拉取的是最新的
docker run -di --name=[取的名字] -p 80:80 [容器名|容器ID]
ll 目录 查看这个目录下的所有目录和文件 ll ./root/
docker pull redis 拉取最新
docker run -di --name=[取的名字] -p 6379:6379 [容器名|容器ID]
【redis注意:生产环境: 不得用 key * 】
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]
拉取找官网
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 追加内容
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 #容器中创建目录
#拷贝文件到容器中并自动解压
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 $JAVA_HOME/bin:$PATH
ENV path $JRE_HOME/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