docker安装包-CSDN博客
〇、常用的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 容器名称: 容器内部文件路径 宿主主机路径 将容器内部的文件复制到宿主主机中
linux命令:systemctl enable 服务名 开机自启动systemctl disable 服务名 开机不启动systemctl start 服务名 启动服务systemctl stop 服务名 停止服务systemctl restart 服务名 重启服务systemctl status 服务名 查看状态
一、使用虚拟机
使用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
因为官网下载可能会比较慢,这里直接使用预下载好的软件
docker安装包-CSDN博客
cd /usr/local/tmpyum 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
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo//下载docker-ce repoyum 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状态
systemctl start dockersystemctl enable dockerdocker info
三、 使用docker
1)配置阿里云镜像代理
①登录阿里云,找到镜像服务
②找到镜像加速器
③ 使用这四个命令
mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://mirror.aliyuncs.com"] } EOFsystemctl daemon-reloadsystemctl restart docker
2) 在docker中创建和使用docker容器
①下载jdk8
docker pull openjdk:8
② 创建一个springBoot项目 并打包命令为my.jar
这里也可以使用ideamaven管理依赖中的docker命令自动打包到docker中
<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文件,写入:
FROM openjdk:8 VOLUME /var/mydatas ADD my.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] EXPOSE 8080
⑤ 创建镜像的docker容器
docker build -f /usr/local/tmp/buildFile -t my:1.0 .
⑥ 启动容器
docker run --name demo -p 8080:8080 -d demo:1.0
⑦成功访问
3)将镜像文件上传至阿里云个人镜像仓库中
① 登录阿里云,创建仓库
②按照阿里云给出的提示pull和push
4)配置本地镜像仓库
下载本地仓库镜像
docker pull registry
修改 Docker Service 配置
vim /usr/lib/systemd/system/docker.service--insecure-registry 192.168.50.129:5000 //文件中加入主机ip及端口号
修改 Docker Daemon 配置
vim /etc/docker/daemon.json
重启 Docker 服务
systemctl daemon-reloadsystemctl restart docker
查看本地仓库
本机镜像仓库和其他docker容器的推送和拉取
需要镜像源的id 和主机的ip 及 docker软件的端口号
push
docker tag 7869938f430a 192.168.50.129:5000/test:1.0docker push 192.168.50.129:5000/test:1.0
pull
docker pull 192.168.50.129:5000/test:1.0
四、数据卷容器
下载mysql5.7的镜像:
docker pull mysql:5.7
创建一个公共容器:
其他容器对象的文件夹都可以设置挂载到该容器中
docker run --name my_datas -v /datas -e MYSQL_ROOT_PASSWORD=root -d my
sql:5.7
创建两个其他容器对象:
docker run --name c1 --volumes-from my_datas -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7docker run --name c2 --volumes-from my_datas -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
进入c1 :
c2及公共容器对象设置挂载文件夹都含有该文件
docker exec -it c1 bashtouch /datas/readmeexit
五、windows连接linux内部的docker容器的mysql软件
docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
打印了日志的id并不代表启动成功,通过查看日志判断创建启动成功了没
docker run --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 72083f70a723d0f1a116c0f883df490874e838b8f2ab86215fe2f47b617aff6e
使用navicate连接