Docker安装及使用
1、以管理员身份运行 PowerShell ,执行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
2、安装 Docker
3、管理员 PowerShell 输入wsl --install,然后重启计算机来安装运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容
4、打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本
wsl --set-default-version 2
5、Microsoft Stroe 安装Liunx子系统
6、安装之后,可以打开 PowerShell 并运行以下命令检测是否运行成功:
docker run hello-world


查看所有的镜像命令:
docker images
查看具体的镜像信息:
windows中的命令: docker image ls | findstr 镜像名称
mac&linux的命令: docker image ls | grep 镜像名称
docker image inspect 镜像的ID信息
docker image inspect $(docker images -q)
-it:开启交互式的命令
--rm:容器退出时删除容器的记录信息
--name:指定容器的名称
-d:后台方式运行容器
docker run:运行镜像
-it:交互式命令
--name:指定运行镜像名称
centos:7.8.2003:被运行的镜像
docker rm 容器ID
docker images -q:获取镜像的ID
$(docker images -q) :返回所有的镜像ID
异地的办公模式,开发把应用程序打包成镜像,打包成镜像发送给测试
1、写代码
2、写的代码打包成镜像
A、执行代码的依赖环境(比如写的代码需要在Linux上执行,那么就需要Linux的环境)
B、执行代码本身的环境(比如java的环境需要jdk)
3、把镜像导出
4、发送给测试
1、接收开发发送的镜像
2、导入镜像到docker中
3、运行镜像
4、开始测试
导入镜像成功后输出的信息
e07ee1baac5f: Loading layer 14.85kB/14.85kB
Loaded image: hello-world:latest
linux
docker ps -a | grep 容器ID
windows
docker ps -a | findstr 容器ID
查看容器的详细的信息
docker container inspect 容器ID
1、运行镜像
docker run -it --rm 镜像名称
2、查看运行中的容器的ID信息
docker ps -a
3、查看容器实时的日志信息
docker logs -f 容器ID (Ctrl+C 退出)
解决了容器中安装的环境,但是必须在容器退出前要进行提交,如果没有提交,那么退出后,安装的环境等于再次安装。
退出vim的步骤:
1、按下esc键
2、按下shift+:
3、:后面输入q!,按下回车键,就会退出
容器提交的步骤:
1、运行镜像,到容器后
2、在容器里面进行具体的操作(比如安装软件,比如搭建环境等等),但是容器不能退出
3、打开一个新的控制台,查看到容器的ID
docker ps -a
4、对容器进行提交
docker commit 容器ID 镜像新的名称
5、待容器提交成功后,之前的容器进行退出
6、查看所有的镜像,会发现新提交的镜像
7、运行新的镜像文件,如:
docker run -it --rm 新镜像名称
2、如果镜像名称不是none,那么在此修改,等价于复制
2、端口映射:-p 80(宿主机的端口):80(容器里面的端口)
3、后台方式运行容器:
docker run -d -p 80:80 nginx
eede621c9dd01419b85c999dcacb6386790db9a2dbcc3287d020d3cd148738d6
4、查询容器的端口:docker port 容器的ID
docker port eede621c9dd0
80/tcp -> 0.0.0.0:80
5、下面演示容器的停止和启动
localhost:~ liwangping$ docker port eede621c9dd0
80/tcp -> 0.0.0.0:80
localhost:~ liwangping$ docker stop eede621c9dd0
eede621c9dd0
localhost:~ liwangping$ docker port eede621c9dd0
localhost:~ liwangping$ docker start eede621c9dd0
eede621c9dd0
localhost:~ liwangping$ docker port eede621c9dd0
80/tcp -> 0.0.0.0:80
使用dockerfile用于构建docker镜像文件信息,通过dockerfile指令,来构建软件依赖,文件依赖,存储等
Dockerfile使用
在docker中创建镜像可以分为两个方法,这两个方法具体可以总结为如下:
手动修改容器内容,然后docker commit提交容器为新的镜像文件
通过在dockerfile中定义一系列的命令和参数构成的脚本,然后这些命令应用于基础镜像,依次添加层,最终生成一个新的镜像
Dockerfile组成部分
dockerfile的主要组成部分可以汇总为:
基础镜像信息
制作镜像操作指令 RUM
容器启动时执行指令CMD["/bin/bash"]
dockerfile的指令主要可以汇总为如下,使用dockerfile的前提是学习会这些指令的基本使用,具体如下:
FROM #指令基础镜像
MAINTAINER #指定维护者信息,也可以没有
RUN #具体执行的操作,在命令前面加上RUN即可
ADD #COPY文件,会自动进行解压
WORKDIR #设置当前工作目录
VOLUME #设置卷,挂载主机目录
EXPOSE #指定对外的端口
CMD #指定容器启动后需要干的事情
COPY #复制文件
ENV #环境变量
ENIRYPOINT #容器启动后执行的命令
MAINTAINER 星德川
#定义一个变量,变量的值是Docker
ENV name Docker
#运行程序,输出变量的值
ENTRYPOINT echo "Hello $name"
2、登录到docker hub的账户
3、再次开始构建镜像
docker build -t centos_name -f Dockerfile .
1、开发编写完代码进行自测
2、编写Dockerfile来构建镜像
3、执行编写的Dockerfile的文件
4、执行Dockerfile文件成功后,也就是构建镜像成功
5、使用docker images,就可以查看到构建成功的镜像信息
6、把镜像导出,发送给测试同学
7、测试再导入,使用docker run来运行这个镜像,运行成功后,环境部署OK
8、开始测试验证
代码 maven
mvn package #把服务(应用程序)打包成jar文件,现象就是在项目的目录下出现了target的文件夹,打包成功的jar世纪就是在target的文件夹里面。
运行jar的命令:
java -jar xxx.jar
FROM centos:7.8.2003
FROM java:8
MAINTAINER admin
#复制文件到容器目录
COPY app-0.0.1-SNAPSHOT.jar /opt
#切换目录
WORKDIR /opt
#启动服务
EXPOSE 8081
CMD ["java","-jar","app-0.0.1-SNAPSHOT.jar"]
2、构建过程输出的信息
docker build -t app -f Dockerfile .
Sending build context to Docker daemon 20.71MB
Step 1/7 : FROM centos:7.8.2003
9b4ebb48de8d: Pull complete
Digest: sha256:8540a199ad51c6b7b51492fa9fee27549fd11b3bb913e888ab2ccf77cbb72cc1 72.16MB/75.84MB
Status: Downloaded newer image for centos:7.8.2003
---> afb6fca791e0
Step 2/7 : FROM java:8
---> d23bdf5b1b1b
Step 3/7 : MAINTAINER admin
---> Running in b97b80f46b67
Removing intermediate container b97b80f46b67
---> d9962fde275e
Step 4/7 : COPY app-0.0.1-SNAPSHOT.jar /opt
---> 0c8fd75ff9c3
Step 5/7 : WORKDIR /opt
---> Running in ea2565ea3e3f
Removing intermediate container ea2565ea3e3f
---> fbbf8937dd53
Step 6/7 : EXPOSE 8081
---> Running in 1d1199761fbc
Removing intermediate container 1d1199761fbc
---> cf1246271644
Step 7/7 : CMD ["java","-jar","app-0.0.1-SNAPSHOT.jar"]
---> Running in 497a8773abb1
Removing intermediate container 497a8773abb1
---> 698e80959c86
Successfully built 698e80959c86
Successfully tagged app:latest
3、查看镜像 docker images
4、运行镜像
docker run --rm -p 8081:8081 app

MAINTAINER 无涯Share
RUN echo "Hi, This Is A Docker Continer Website" > /usr/share/nginx/html/index.html
EXPOSE 80
docker build -t nginx_web -f Dockerfile .
运行镜像:
docker run --rm -p80:80 nginx_web
docker logs -f 容器ID
、MAINTAINER admin
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo;
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo;
#安装Python环境
RUN yum install python3-devel python3-pip -y
#安装flask库
RUN pip3 install -i https://pypi.douban.com/simple flask
RUN pip3 install flask_restful
RUN pip3 install flask_httpauth
RUN pip3 install flask_jwt
#复制文件到容器目录
COPY app.py /opt
#切换目录
WORKDIR /opt
#启动服务
EXPOSE 5000
CMD ["python3","app.py"]
docker build -t python_web -f Dockerfile .
tasklist | findstr "pid" #根据pid信息查询到具体的应用程序
443:安全协议
25 :邮件服务
22:ssh服务端口
修改镜像的名称
docker tag 镜像ID DockerHubID/镜像名称
push:把本地的信息推送到远程
docker push DockerHubID/镜像名称
pull:从远程获取信息到本地
docker pull DockerHubID/镜像名称
删除需要在Docker Hub后台删除
查看镜像中文件
docker run -it --rm 镜像ID pash
例:docker run -it --rm -p 8081:8081 -d 0ab888aacfaf pash
ls :查看目录下的文件
ls -la:查看所有的文件(包含了隐藏文件)
pwd:查看当前的路径

浙公网安备 33010602011771号