docker的安装
可参考官方文档
查看系统内核
uname -r
查看系统版本
cat /etc/os-release
#1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.安装镜像的仓库(默认国外 推荐使用阿里云镜像)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#4.更新最新的yum
yum makecache fast
#5.docker相关的 (ce社区 ee企业)
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#6.启动docker
systemctl start docker
#7.查看docker版本
docker version
#8.docker的hello world 会提示(Hello from Docker!)
docker run hello-world
#9.查看hello-world的镜像
docker images
常用命令
镜像命令
#查看镜像
docker images
#查看镜像id
docker images -q
#查看进程
docker ps
#(历史运行)
docker ps -a
#(历史运行id)
docker ps -aq
#下载镜像
docker pull mysql
#下载其他版本
docker pull mysql:5.7
#删除镜像(docker rmi id)
docker rmi c20987f18b13
#启动nginx
docker run -it -name nginx01 -p 9020:80 nginx
curl localhost:9020 #linux可以访问
http://公网ip:9020/ #客户端通过ip访问
#启动mysql镜像
docker run -it -name mysql01 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql
#可以客户端连接
#提交镜像
docker commit -a="wang" -m="ceshi tijiao" 6359181883a8(nginx进程id) nginxceshi
容器命令
#交互式运行容器
docker run -it centos
#停止退出
exit
#不停止退出
ctrl+p+q
#进入容器
docker exec -it 容器id /bin/bash #进入容器后开启一个新的终端
docker attach 容器id /bin/bash #进入容器正在执行的终端
#启动和停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
#拷贝命令
docker cp 702e1341014a:/home/file.text /home #从容器拷贝到主机
#portainer dcoker可视化面板
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
容器数据卷
容器之间可以有以后个数据共享技术!Docker容器中产生的数据,同步到本地,这就是卷技术
目录挂载,将我们容器内的目录,挂在到Linux上面
总结一句话:容器的持久化和同步操作,容器之间也是可以共享数据啊的
#使用数据卷
#方式一:直接用命令赖挂载 -v (双向同步)
docker run -it -v 主机目录:容器目录 nginx
docker run -it -p 9020:80 -v /home/benjiceshi:/home nginx #(在虚拟机添加文件本机会展示 本机添加虚拟机也展示)
具名和匿名挂载
#匿名
-v /home/rongqi(容器内路径) nginx
#具名
-v jumingNginx:/home/rongqi(卷名:容器内路径) nginx
#指定路径
-v /home/benjiceshi:/home/rongqi(本机路径:容器内路径) nginx
DockerFile
#编写脚本
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "------end-------"
CMD /bin/bash
#打包构建
docker build -f dockerfile -t wang/centos .
DockerFile指令
FROM #基础镜像,一切从这里开始 相当于继承
MAINTAINER #镜像是谁写的 姓名+邮箱
RUN #镜像构建的时候需要运行的命令
ADD #步骤 添加的内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #指定对外端口
CMD #指定容器启动的时候运行的命令(只有最后一个会生效,可被代替)
ENTERPOINT #指定容器启动的时候运行的命令(可以追加命令)
ONBUILD #当构建一个被继承DockerFile这个时候的就会运行ONBUILD
COPY #类似于ADD 将文件拷贝到镜像中
ENV #构建的时候设置环境变量
SpringBoot微服务打包Docker镜像
1.springBoot项目
2.打包应用
3.编写dockerfile
4.构建镜像
5.发布运行
#编写dockerfile
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=9020"]
EXPOSE 9020
ENTERPOINT ["java","-jar","/app.jar"]
江jar包和该文件一同上传到服务器
#构建成镜像
docker build -f dockerfile -t testjar .
docker ps
docker run -d -P --name testboot 镜像id