栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker 命令汇总

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker 命令汇总

Docker安装与启动 安装

yum -y install docker.io

启动服务

systemctl start docker

设置自动运行

systemctl enable docker

获取并使用镜像 执行镜像

docker run ubuntu history

如果镜像不存在,则从DockerHub中抓取,再执行后面的命令。

镜像中执行

docker run -i -t ubuntu

  • -i:新容器中指定一个终端
  • -t:允许对容器内的终端进行交互操作处理

更新当前镜像
update

退出镜像 Ctrl D 或exit

查询镜像状态

docker ps -a

查看镜像

docker images

搜索镜像

docker search centos

docker search centos:15

抓取镜像

docker pull docker.io/redis

Docker容器 将内容拷贝到容器中

查看镜像ID
docker images
拷贝jdk到镜像的*/usr/local*目录下
docker cp /usr/local/jdk ID:/usr/local/

将指定ID的镜像保存到新的镜像中

为了方便后续使用,将配置更改的容器保存为新镜像
docker commit -m="Java运行环境镜像" -a="凌凌漆" ID centos-java:base

  • -m: 表示说明的定义
  • -a: 表示作者
  • base: 标签
端口映射模式启动镜像

docker run -p 80:8080 -it centos-java:base

后台运行镜像

Ctrl + P +Q

镜像管理 文件保存镜像 创建镜像

docker save -o /root/docker/centos-java.base centos-java:base

删除镜像

docker rmi ubuntu:base

注意:删除镜像前需要保证已经没有运行的容器存在,否则会出现:
Error response from daemon: conflict: unable to remove repository reference "docker.io/ubuntu:latest" (must force) - container 4024d3922009 is using its referenced image ba6acccedd29

删除容器

docker rm ID

删除所有后台运行的容器
docker rm -f 'docker ps -a -q'

停止运行的容器

docker stop ID

导入镜像文件到容器

docker load --input /root/docker/centos-java.base

DockerHub保存镜像

DockerHub地址:https://hub.docker.com/

上传镜像

docker push linglingqi/centos-java:base

注意:推送到DockerHub中的镜像需要以用户名做前缀,我的DockerHub的用户名是linglingqi

如果保存的镜像没有用户名前缀,则重新生成镜像
docker commit -m="Java运行环境" -a="凌凌漆" 96f544e4900b linglingqi/centos-java:base

下载镜像

docker pull linglingqi/centos-java:base

Dockerfile创建镜像

创建Dockerfile
#基础镜像
FROM centos
# 说明文件及作者信息
MAINTAINER linglingqi "imlinglingqi@gmail.com"
# 更新镜像
RUN yum update
# 安装wget
RUN yum -y install wget
# 下载JDK
RUN cd /usr/local && wget http://172.17.0.1:8080/jdk1.8.0_141.tar.gz
RUN tar -zxvf /usr/local/jdk1.8.0_141.tar.gz -C /usr/local/
RUN mv /usr/local/jdk1.8.0_141 /usr/local/jdk
# 下载Maven
RUN cd /usr/local && wget http://172.17.0.1:8080/apache-maven-3.3.9.tar.gz
RUN tar -zxvf /usr/local/apache-maven-3.3.9.tar.gz -C /usr/local/maven
# 配置环境变量
ENV JAVA_HOME=/usr/local/jdk
ENV CLASSPATH=$JAVA_HOME/lib
ENV PATH=$PATH:$JAVA_HOME/bin   
RUN export PATH JAVA_HOME CLASSPATH
ENV M2_HOME=/usr/local/maven
RUN export PATH=${M2_HOME}/bin:${PATH}
# 端口映射
EXPOSE 8080 
构建镜像

docker build -t linglingqi/centos-env:dev /root/docker/

按端口映射启动

docker run -p 80:8080 -it linglingqi/centos-env:dev

使用Docker发布微服务 Docker主机开启Api进程

vi /lib/systemd/system/docker.service

#ExecStart=/usr/bin/dockerd-current                                                                                                                                                                                             
#          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current                                                                                                                                                    
#          --default-runtime=docker-runc                                                                                                                                                                                        
#          --exec-opt native.cgroupdriver=systemd                                                                                                                                                                               
#          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current                                                                                                                                                       
#          --init-path=/usr/libexec/docker/docker-init-current                                                                                                                                                                  
#          --seccomp-profile=/etc/docker/seccomp.json                                                                                                                                                                           
#          $OPTIONS                                                                                                                                                                                                             
#          $DOCKER_STORAGE_OPTIONS                                                                                                                                                                                              
#          $DOCKER_NETWORK_OPTIONS                                                                                                                                                                                              
#          $ADD_REGISTRY                                                                                                                                                                                                        
#          $BLOCK_REGISTRY                                                                                                                                                                                                      
#          $INSECURE_REGISTRY                                                                                                                                                                                                   
#         $REGISTRIES                                                                                                                                                                                                            
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

重新加载守护配置项
systemctl daemon-reload

重启docker服务
service docker restart

查看API端口
ss -ntulp | grep 2375

[linglingqi]# ss -ntulp | grep 2375
tcp    LISTEN     0      128    [::]:2375		[::]:* 		users:(("dockerd-current",pid=13171,fd=5)) 
配置完成后访问:http://服务器IP:2375/version
如果提示: dial tcp 服务器IP:2375: connect: operation timed out

则大概率是防火墙的原因,设置防火墙或安全组,开放2375端口允许外网访问。
开启后再次访问:{"Version":"1.13.1","ApiVersion":"1.26","MinAPIVersion":"1.12","GitCommit":"4ef4b30/1.13.1",
"GoVersion":"go1.13.3","Os":"linux","Arch":"amd64","KernelVersion":"4.19.91-19.1.al7.x86_64",
"BuildTime":"2020-01-31T15:01:11.405321918+08:00","PkgVersion":"docker-1.13.1-108.git4ef4b30.1.al7.x86_64"}
则证明成功。
修改maven的settings.xml文件

      自定义ID,项目中会用到
      DockerHub的用户名
      DockerHub的密码
      
         DockerHub的注册邮箱
      

修改项目的pom.xml文件

        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.19.1
                
                    true
                
            
            
            
                com.spotify
                docker-maven-plugin
                0.4.12
                
                    http://47.101.49.234:2375
                    linglingqi/registry-micro-service
                    
                        dev
                        latest
                    
                    java
                    true
                    
                        ["java","-jar","/${project.build.finalName}.jar"]
                    
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    

	
		
            github
        
        
        
            dockerhub
        
    

  • serverId:Maven配置文件(settings.xml)中定义的服务连接ID。
  • dockerHost:配置Docker主机,并且要求此主机开启API进程。
  • imageTags:定义镜像的标签,默认会使用latest。
  • imageName:镜像名称,该镜像名称需要满足“正则[a-z0-9-_.]”,必须有用户名做前缀。
  • baseImage:要使用的基础镜像名称,如果本地Docker不存在,则会自动抓取镜像信息。
  • entryPoint:Docker镜像执行时的命令为java -jar xxx.jar。
打包&部署

mvn clean package docker:build -DpushImage

启动

docker run -p 10000:10000 -itd linglingqi/registry-micro-service:dev

  • -p: 端口映射
  • -d: daemon运行
  • linglingqi/registry-micro-service: pom.xml中指定的镜像名称
查看服务

http://http://服务器IP:10000

服务编排 安装docker-compose

yum -y install docker-compose

编写docker-compose.yml文件
version: '1'
services:
  registry1:
    image: linglingqi/registry-micro-service:prod
    ports:
      - "10001:10001"
    environment:
      - spring.profiles.active=server1
  registry2:
    image: linglingqi/registry-micro-service:prod
    ports:
      - "10002:10002"
    environment:
      - spring.profiles.active=server2
启动

docker-compose up -d

  • -d:daemon方式运行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号