〇、常用的docker命令
docker的作用:
快速进行软件的安装,便于软件环境的维护
docker的镜像:
压缩了指定软件的安装包的文件。使用镜像文件创建容器
docker的容器:
容器可以理解为就是一台小电脑。安装的linux系统,并且安装了指定的软件。
docker的常用命令:
docker pull 镜像名称:版本 从镜像库中下载指定的镜像文件
docker images 查看本地镜像库的镜像文件
docker rmi 镜像ID 删除镜像文件,但是前提是没有该镜像创建的容器存在!
docker run -d -p 宿主主机端口号:容器端口号 --name 容器名称 其他参数 镜像Id 创建并启动容器(容器不一定启动成功,需要查看启动日志)
docker logs -f 容器名称 查看容器的日志
docker container ls 查看正在运行的容器
docker container ls -a 查看启动过的容器列表
docker stop 容器名称 关闭容器
docker start 容器名称 启动容器
docker rm 容器名称 删除容器
docker inspect 容器名称 查看容器信息
docker exec -it 容器名称 /bin/bash 进入容器的命令终端(容器必须是启动状态)
docker cp 宿主主机文件路径 容器名称:容器内部路径 将宿主主机指定的文件复制到容器中
docker cp 容器名称: 容器内部文件路径 宿主主机路径 将容器内部的文件复制到宿主主机中
一、使用虚拟机
使用VM 版本为16.2.1 ,安装Linux的CentOS Stream 8操作系统
二、在虚拟机中安装docker
1)windos中安装Xshell7和Xftp7,官网傻瓜式安装
使用xshell连接linux,在xshell中打开xftp会自动连接虚拟机。
2)使用xftp将docker的安装包放入 /usr/local/tmp 路径中
3)离线版安装docker
因为官网下载可能会比较慢,这里直接使用预下载好的软件
bashcd /usr/local/tmp yum localinstall containerd.io-1.2.6-3.3.fc30.x86_64.rpm //安装container-io,由于container-io需要秘钥,所以需要使用yum安装方式,需要确认 rpm -ivh libcgroup-0.41-19.el8.x86_64.rpm //安装Docker-Ce的依赖 rpm -ivh docker-ce-cli-19.03.13-3.el8.x86_64.rpm //安装Docker客户端 rpm -ivh docker-ce-19.03.13-3.el8.x86_64.rpm //安装Docker-ce
4)在线版安装docker
bashcurl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo //下载docker-ce repo yum install -y https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm //安装依赖 yum install -y docker-ce //安装docker-ce
5)开启docker 开机自启 查看docker状态
bash
systemctl start docker
systemctl enable docker
docker info
三、 使用docker
1)配置阿里云镜像代理
①登录阿里云,找到镜像服务
②找到镜像加速器
③ 使用这四个命令
bashmkdir -p /etc/docker tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://mirror.aliyuncs.com"] } EOF systemctl daemon-reload systemctl restart docker
2) 在docker中创建和使用docker容器
①下载jdk8
bashdocker pull openjdk:8
② 创建一个springBoot项目 并打包命令为my.jar
这里也可以使用ideamaven管理依赖中的docker命令自动打包到docker中
XML<build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.2.2</version> <configuration> <imageName>my:2.0</imageName> <!--指定镜像名称 仓库/镜像名:标签--> <baseImage>openjdk:8</baseImage> <!--指定基础镜像--> <dockerHost>http://192.168.222.128:2375</dockerHost> <!-- 指定服务器仓库地址 --> <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint> <!-- 容器启动执行的命令 --> <resources> <resource> <targetPath>/</targetPath> <!-- 指定要复制的目录路径,这里是当前目录 --> <directory>${project.build.directory}</directory> <!-- 指定要复制的根目录,这里是target目录 --> <include>${project.build.finalName}.jar</include> <!-- 指定需要拷贝的文件,这里指最后生成的jar包 --> </resource> </resources> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> </configuration> </plugin> </plugins> </build>
③ 在xftp中 /usr/local/docker 路径下放入my.jar
④同时新建buildFile文件,写入:
bashFROM openjdk:8 VOLUME /var/mydatas ADD my.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] EXPOSE 8080
⑤ 创建镜像的docker容器
bashdocker build -f /usr/local/tmp/buildFile -t my:1.0 .
⑥ 启动容器
bashdocker run --name demo -p 8080:8080 -d demo:1.0
⑦成功访问
3)将镜像文件上传至阿里云个人镜像仓库中
① 登录阿里云,创建仓库
②按照阿里云给出的提示pull和push
4)配置本地镜像仓库
下载本地仓库镜像
XML
docker pull registry
修改 Docker Service配置
XML
vim /usr/lib/systemd/system/docker.service
--insecure-registry 192.168.50.129:5000 //文件中加入主机ip及端口号
修改 Docker Daemon配置
XML
vim /etc/docker/daemon.json
重启 Docker服务
XML
systemctl daemon-reload
systemctl restart docker
查看本地仓库
本机镜像仓库和其他docker容器的推送和拉取
需要镜像源的id 和主机的ip 及 docker软件的端口号
push
XMLdocker tag 7869938f430a 192.168.50.129:5000/test:1.0 docker push 192.168.50.129:5000/test:1.0
pull
XMLdocker pull 192.168.50.129:5000/test:1.0