虚拟机安装Docker以及启动
将老版本docker删除干净
1 2 3 4 5 6 7 8 9 10 11
| yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine rpm -qa |grep docker yum list installed | grep docker yum remove -y containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
|
安装见 教程
修改docker.service文件
/etc/systemd/system/docker.service
1
| ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
|
若启动失败,则删除 -H fd:// –containerd=/run/containerd/containerd.sock
1
| ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
|
重新加载配置
启动docker
加入宿主机路由
虚拟机启动docker,宿主机无法访问虚拟机中的docker,需加入路由
route -p add 172.17.0.0 mask 255.255.0.0 192.168.128.129 前面是docker的ip后面是虚拟机的ip
Dockerfile文件
- FROM 基于什么基础镜像
- RUN 构建镜像时运行的指令
1 2
| #运行shell指令 RUN yum install -y vim
|
1 2
| #运行数组模式的命令 RUN ["yum","install","-y","vim"]
|
1 2
| #运行echo打印 RUN echo hello
|
解释:区别,ENTRYPOINT只能执行一个指令,CMD可以运行多个但只能执行最后一个
与 RUN的区别,RUN是在镜像生成时执行,CMD和ENTRYPOINT是在运行容器时第一个命令
常用命令
查看所有镜像
新建镜像
1
| docker build -t mycentos:01 .
|
解释:后面的.表示Dockerfile在当前路径下
启动镜像
解释:加it表示运行时进入container
1 2
| #加长版run docker run -d -p 9669:9669 --name demoname mycentos:01 --network host
|
解释:-d 后台启动 -p 设置端口映射 –name 设置容器名称 –network host 以当前服务器的ip作为容器ip
1
| docker run -d -p 9669:9669 --name demoname mycentos:01 --restart=always
|
解释:–restart=always 服务器开机自启镜像
解释:在运行的容器中执行命令
查看容器
关闭容器
移除容器
1 2
| #移除全部已经停止的容器 docker rm $(docker ps -qa)
|
移除镜像
镜像物理转移
1
| docker save -o aaa.tar mycentos:01
|
IDEA集成docker
安装docker插件
编写Dockerfile文件
1 2 3 4 5 6 7 8 9 10 11
| FROM openjdk:8-jre
WORKDIR /app
ADD docker-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 9669
ENTRYPOINT ["java","-jar"] CMD ["app.jar"]
|
POM中引入dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>dockerdemo:0.0.1</imageName> <dockerHost>http://172.17.0.1:2375</dockerHost>
<serverId>my-docker-registry</serverId> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> <maintainer>docker_maven docker_maven@email.com</maintainer> <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> </configuration> </plugin> </plugins> </build>
|