本文共 4286 字,大约阅读时间需要 14 分钟。
(1)查看centos版本;
Docker 要求CentOS系统的内核版本最低3.10
(2)若版本低于 3.10 则更新
(3) 安装docker yum install docker
(4)启动docker
(5)设置docker开启则启动
(6)停止docker 命令
配置完镜像加速后:
1.通知systemd重载此配置文件;
systemctl daemon-reload 2.重启docker服务 systemctl restart docker(7)docker 安装MySQL
执行 docker search 关键字 去docker hub上检索镜像的详细信息,如镜像的TAG。 会得到一个镜像列表
拉取docker pull 镜像名:tag tag是可选的,tag表示标签,多为软件的版本,默认是latest
列表 docker images 查看所有本地镜像
删除 docker rmi image-id 删除指定的本地镜像
容器操作:
运行docker容器:
docker run --name mytomcat -d tomcat:latest
查看防火墙状态: service firewalld status
临时关闭防火墙: service firewalld stop
启动MySQL
添加端口映射,外部才能访问。
[root@localhost docker]# docker run -p 3306:3306 --name mydata -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6.462d000afd66abda1b0acdc316dc3413780e0bb508f94787575a4080de1d641f02
查看已经安装的docker镜像的基础信息: docker inspect images-name:tag
[root@localhost ~]# docker inspect mysql:5.6.46
容器操作:运行docker run--name 容器名-i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG#--name 指定容器名,可自定义,不指定自动命名#-i以交互模式运行容器#-t分配一个伪终端,即命令行,通常-it组合来使用#-p指定映射端口,讲主机端口映射到容器内的端口#-d后台运行容器#-V指定挂载主机日录到容器日录,默认为rw读写模式,ro表示只读
进入到容器里面:# docker exec -it 容器名或容器id /bin/bash找到Tomcat容器配置文件 # cd /docker-java-home/jre/lib/security/ -----》java.security验证文件改为 securerandom.source=file:/dev/./urandomexit 退出容器删除容器: docker rm -f 容器名或容器id进入root目录 #cd /root/上传文件 # rz快速启动容器 # docker run --name 自定义容器名 -p 80:8880 -v /root/java.security:/docker-java-home/jre/lib/security/java.security -d tomcat:latest查看Tomcat日志 # docker logs 自定义容器名
在docker中部署 springboot 项目在jar包路径下创建Dockerfile文件vi Dockerfile#指定基础镜像,本地如果没有会从 dockerhub 上 pull 下来FROM openjdk:8#把可执行jar包复制到基础镜像的根目录下ADD learn.jar /learns.jar#镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效EXPOSE 80#在镜像运行为容器后执行的命令 ENTRYPOINT ["java","-jar","/learns.jar"]使用dockerbuild命令构建镜像,基本语法docker build -f Dockerfile -t mylearn/mypro:v1 .#-f指定Dockerfile文件的路径#-t指定镜像名字和TAG#.指当前日录,这里实际上需要一个上下文路径运行容器# docker run --name 自定义容器名称 -p 80:80 -d --restart=always mylearn/pro:v1#加上--restart=always 表示此容器开机启动,只要docker也设置了开机自启,docker不死
构建镜像:
构建镜像:【方式一】通过commit的方式创建镜像【将容器保存为镜像】docer commit 容器名/ 容器id 自定义镜像名称【方式二】通过dockerfile的方式创建镜像vim DockerfileFROM nginxADD ./ /user/share/nginx/html/vim index.html 【在html文件中写内容】docker build -t m2 .docker run -d -p 100:80 m2【方式三】通过docker save 指令完成将一个镜像保存到一个文件里 docker save 镜像id/镜像名 > test.tardocker load < test.tar-------------------------------------------------------------------------------d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i-t两个参数,创建后就会自动进去容器)-p 指定端口映射-v 映射文件(将宿主机和容器的目录或者文件做映射)--name 指定容器运行起来后的名称 docker ps 中的 【names】就是我们自定义的名字 【name】是镜像的名称-i 表示运行容器-t 表示容器启动后会进入其命令行加入这两个参数后,容器创建就能登录进去查看正在运行的容器 docker ps 查看所有容器docker ps -a查看最后一次运行的容器docker ps -l查看停止的容器docker ps -f status=exited(1)交互式方式创建容器docker run -it --name=容器名称 镜像名称:标签 /bin/bash这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态退出当前容器exit(2)守护式方式创建容器(后台运行):docker run -di --name=容器名称 镜像名称:标签登录守护式容器方式:docker exec -it 容器名称(或者容器ID)/bin/bash进入到容器中:docker exec -it 容器名称/容器id /bin/bash【外部】复制文件到【容器】中去:docker cp /外部目录/外部文件 容器名:/容器目录/文件名【若最后写了文件名,就以最后的文件名为主】【容器】复制文件到【外部】:docker cp 容器名:/容器目录/容器中的文件 /外部目录/文件名【若最后写了文件名,就以(目录挂载)文件映射:docker run -di -v /us/local/myhtml:/user/local/myhtml --name=自定义容器名 镜像名:版本号docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7docker run -di --name=mynginx -p 90:80 -v /usr/html:/usr/share/nginx/html nginx:1.17.5查看容器所有信息:docker inspect 容器名docker inspect --format=`{ {.Networksettings.IPAddress}}`nginx :cd /etc/nginx/nginx.conf这里面包含nginx下的所有配置include /etc/nginx/conf.d/*.confcd conf.ddircat default.conflocation { root /usr/share/nginx/html; index index.html index.htm; }将当前目录下的dist文件夹 改名为htmlmv dist html 命令 作用FROM image_name:tag 定义了使用哪个基础镜像启动构建流程MAINTAINER user_name 声明镜像的创建者ENV key value 设置环境变量(可以写多条)RUN command 是Dockerfile的核心部分(可以写多条)ADD source_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压dest_dir/file COPY souce_dir/file 和ADD相似,但是如果有压输文件并不能解压 dest_dir/file WORKDIR path_dir 设置工作目录
转载地址:http://vqxxi.baihongyu.com/