centos7 使用docker 笔记

centos7 使用docker 笔记

在centos7上,使用docker;
docker指令从零开始,一步步演示,希望对大家有所帮助;
docker使用起来很方便,希望开发者多多使用docker,方便自己的开发;

  1. 安装

    yum -y install docker-io 	# 安装docker依赖包,仅此一条命令就可以搞定;
    
  2. 启动Docker

    service docker start	# 启动docker
    
  3. 加入开机启动

    chkconfig docker on		# 加入开机启动
    
  4. 查看版本

    docker version
    
    Client:
     Version:         1.13.1
     API version:     1.26
     Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
     Go version:      go1.10.3
     Git commit:      7d71120/1.13.1
     Built:           Mon Jun  7 15:36:09 2021
     OS/Arch:         linux/amd64
    
    Server:
     Version:         1.13.1
     API version:     1.26 (minimum version 1.12)
     Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
     Go version:      go1.10.3
     Git commit:      7d71120/1.13.1
     Built:           Mon Jun  7 15:36:09 2021
     OS/Arch:         linux/amd64
     Experimental:    false
    
  5. 镜像库

    https://hub.docker.com/explore/

  6. 安装centos7.9 容器

    # centos7.9.2009 安装
    docker pull centos:centos7.9.2009
    
    # 查看所有镜像
    docker images
    
    # 控制台行进入,可以指令交互 --name 命名
    docker run -t -i --name centos.1 docker.io/centos:centos7.9.2009 /bin/bash
    
    # 可以后台运行 -d
    docker run -t -i -d docker.io/centos:centos7.9.2009 /bin/bash
    
    # 查看镜像的运行状态
    docker ps -a
    
    # 进入运行中的容器 容器ID
    docker exec -i -t 2f12d291d8f7 bash
    # 进入运行中的容器 容器名称
    docker exec -i -t modest_visvesvaraya bash
    
  7. 用Dockerfile制作jdk镜像

    mkdir docker.i
    ls
    Dockerfile  jdk-8u311-linux-x64.tar.gz
    
    # Dockerfile for jdk1.8
    FROM docker.io/centos:centos7.9.2009
    
    # install jdk.1.8
    ADD jdk-8u311-linux-x64.tar.gz /home/app
    ENV JAVA_HOME=/home/app/jdk1.8.0_311
    ENV PATH=$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    # 制作镜像 -t是名称是标签  .是当前文件夹
    docker build -t jdk-1.8:0.0.1 .
    
    # 运行镜像
    docker run -itd --name jdk1.8 jdk-1.8:0.0.1
    
    # 进入镜像
    docker exec -i -t jdk1.8 bash
    # 查看java版本
    java -version
    
  8. 用Dockerfile自己制作tomcat镜像

    # 下载tomcat压缩包
    wget --no-check-certificate  https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz 
    
    # 文件夹中的文件
    ls
    apache-tomcat-8.5.73.tar.gz  Dockerfile  jdk-8u311-linux-x64.tar.gz
    
    # Dockerfile for tomcat8
    FROM docker.io/centos:7.9.2009
    
    # install jdk.1.8
    ADD jdk-8u311-linux-x64.tar.gz /home/app
    ENV JAVA_HOME=/home/app/jdk1.8.0_311
    ENV PATH=$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    # install tomcat8
    ADD apache-tomcat-8.5.73.tar.gz /home/app
    ENV CATALINA_HOME=/home/app/apache-tomcat-8.5.73
    expose 8080
    CMD ["/home/app/apache-tomcat-8.5.73/bin/catalina.sh","run"]
    
    docker build -t tomcat-8:0.0.1 .
    
    # 运行tomcat8镜像 8081和8082
    # 实际使用时,需要考虑 包的部署
    docker run -p 8081:8080 -d tomcat-8:0.0.1
    docker run -p 8082:8080 -d tomcat-8:0.0.1
    
    # 进入镜像, 镜像中关闭tomcat后,容器也会自动关闭
    docker exec -it 58d6f5a1697b bash
    
    # 浏览器访问宿主机的8081和8082
    http://192.168.31.100:8081/
    http://192.168.31.100:8081/
    
  9. 下载tomcat镜像使用tomcat

    # 先使用这个 tomcat8 + jre8
    docker pull tomcat:8-jre8
    
    # 启动8080 ,放入数据卷目录下 /docker_v/tomcat8080/webapps
    # 命名为 tomcat8080
    # --restart=always 重启容器后自动执行
    # --privileged=true 给数据卷权限
    # GOOD
    docker run -d --name tomcat8080 --restart=always -p 8080:8080 --privileged=true -v /docker_v/tomcat8080/webapps:/usr/local/tomcat/webapps docker.io/tomcat:8-jre8
    
  10. mysql容器 Good

    ## 拉取镜像
    docker pull mysql:5.7
    
    # GOOD 推荐使用这个 启动镜像 数据持久化到/home/docker/var/lib/mysql:/var/lib/mysql
    # mysql3306.sh
    docker run -d -p 3306:3306 --name mysql3306 --privileged=true -v /docker_v/mysql3306:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root docker.io/mysql:5.7
    
  11. 使用Dockerfile,制作mysql镜像

    FROM docker.io/mysql:5.7
    COPY bolg_test.sql /bolg_test.sql
    
    docker run -d -p 33068:3306 --name mysql.8 -e MYSQL_ROOT_PASSWORD=root --privileged=true -v /home/software/mysql/data:/home/software/mysql/data mysql-5.7:0.0.1 
    
    # 导入sql文件
    mysql -uroot -proot < /home/software/mysql/data/bolg_test.sql
    
    # 关闭容器
    docker stop dfac6f0ee366
    docker stop mysql.7
    
  12. 使用docker部署war包 helloworld.war

    [root@pipi tomcat]# ls
    apache-tomcat-8.5.73.tar.gz  Dockerfile  helloworld.war  jdk-8u311-linux-x64.tar.gz
    
    # vi Dockerfile 
    
    FROM docker.io/centos:centos7.9.2009
    # install jdk1.8
    ADD jdk-8u311-linux-x64.tar.gz /home/app
    ENV JAVA_HOME=/home/app/jdk1.8.0_311
    ENV PATH=$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    # install tomcat8
    ADD apache-tomcat-8.5.73.tar.gz /home/app
    ENV CATALINA_HOME=/home/app/apache-tomcat-8.5.73
    
    # deploy the war
    RUN rm -rf $CATALINA_HOME/webapps/*
    COPY helloworld.war $CATALINA_HOME/webapps/ROOT/ROOT.war
    WORKDIR $CATALINA_HOME/webapps/ROOT
    RUN jar xvf ROOT.war
    RUN rm -rf ROOT.war
    
    expose 8080
    CMD ["/home/app/apache-tomcat-8.5.73/bin/catalina.sh","run"]
    
    docker build -t helloworld:0.0.1 .
    
    docker run -p 8081:8080 -d helloworld:0.0.1
    # 加上 表示此容器开机启动,只要docker也设置了开机自启,docker不死
    --restart=always
    
    # 调用接口,成功返回
    curl http://192.168.8.200:8081/hello
    HelloWorld
    
  13. 运行jar包

    # jdk环境 + jar包即可  使用数据卷 java -jar 是指令 默认是8080端口
    docker run -d --restart=always  -p 9090:8080 --privileged=true -v /home/software:/home/software --name helloworld.jar2 jdk-test:0.0.1  java -jar /home/software/helloworld.jar
    
    # 指定容器内运行的端口号 --server.port=9093
    docker run -d --restart=always  -p 9093:9093 --privileged=true -v /home/software:/home/software --name helloworld.jar93 jdk-test:0.0.1  java -jar /home/software/helloworld.jar --server.port=9093
    
    # GOOD
    cat java-jar9099.sh 
    #!/bin/bash
    # 需要先将jar包放入目录下,使用数据卷中的 /docker_v/java-jar9090 下的helloworld.jar
    # 
    cmdName=java-jar
    cmdPort=9099
    vmPort=8080
    name=$cmdName$cmdPort
    jarName=helloworld.jar
    
    docker run -d --restart=always  -p $cmdPort:$vmPort --privileged=true -v /docker_v/$name:/docker_v/$name --name $name  jdk-test:0.0.1  java -jar /docker_v/$name/$jarName --server.port=8080
    
  14. 停止和重新启动容器

     # 停止 --name
     docker stop helloworld.jar93 helloworld.jar92 helloworld.jar3 helloworld.jar2
     # 启动 --name
     docker start helloworld.jar93
     
     # Docker:关闭以--restart=always启动的容器,必须是ID
    docker update --restart=no <container-id>
    docker stop <container-id>
    
  15. 删除镜像和容器

    # 删除镜像
    docker rmi jdk1.8:0.0.1
    # 删除容器(使用容器名称删除)
    docker rm jdk1.8
    
  16. nginx容器使用

    # 拉取镜像
    docker pull nginx:latest
    
    # 启动容器
    docker run --name nginx80 -d -p 80:80 nginx
    
    # 容器中默认配置在 /etc/nginx/nginx.conf
    docker run --name nginx82 -d -p 82:80  -v /some/content/nginx82:/usr/share/nginx -d nginx
    
  17. redis容器

    $ docker pull redis #113MB
    $ docker pull redis:3.2 # 76MB
    # 每60秒持久化
    $ docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning
    
    # GOOD
    $ docker run -d --name redis6379 --privileged=true -p 6379:6379 -v /docker_v/redis6379:/data redis redis-server --appendonly yes
    
  18. activeMq容器

    # 搜索
    $ docker search activemq
    # 拉取
    $ docker pull webcenter/activemq:latest
    
    $ docker run -di --name=activemq -p 61616:61616 -p 8161:8161 webcenter/activemq
    
    http://192.168.8.200:8161
    
    8161 控制页面使用
    61616 程序访问使用
    

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Goldchenn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值