【Java篇】Docker怎么玩?

Docker实战笔记

一、设置存储库

官网安装地址:Install Docker Engine on CentOS | Docker Documentation

安装yum-utils包(提供yum-config-manager实用程序)并设置稳定的存储库。

$ sudo yum install -y yum-utils

$ sudo yum-config-manager \

    --add-repo \

    

二、可选:启用每晚或测试存储库

这些存储库包含在docker.repo上面的文件中,但默认情况下是禁用的。您可以在稳定存储库旁边启用它们。以下命令启用每夜存储库。

$ sudo yum-config-manager --enable docker-ce-nightly

要启用测试通道,请运行以下命令:

$ sudo yum-config-manager --enable docker-ce-test

您可以通过运行 带有标志的命令来禁用nightlytest存储库。要重新启用它,请使用该标志。以下命令禁用夜间存储库。

$ yum-config-manager--disable--enable

$ sudo yum-config-manager --disable docker-ce-nightly

三、安装 Docker 引擎

1.安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本

$ sudo yum install docker-ce docker-ce-cli containerd.io

2.如果提示接受 GPG 密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。此命令会安装 Docker,但不会启动 Docker。它还会创建一个docker组,但是默认情况下它不会将任何用户添加到该组中。

3.要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装:

  1. 列出并排序您的存储库中可用的版本。此示例按版本号从最高到最低对结果进行排序,并被截断:
$ yum list docker-ce --showduplicates | sort -r
  1. 返回的列表取决于启用了哪些存储库,并且特定于您的 CentOS 版本(.el7在本例中由后缀表示)
  2. 通过其完全限定的包名称安装特定版本,即包名称 (docker-ce) 加上版本字符串(第 2 列),从第一个冒号 (:) 开始,一直到第一个连字符,用连字符 (-) 分隔。例如docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
  1. 此命令会安装 Docker,但不会启动 Docker。它还会创建一个 docker组,但是默认情况下它不会将任何用户添加到该组中。
  • 启动Doker
  1. 启动命令。
 $ sudo systemctl start docker
  1. hello-world 通过运行映像来验证 Docker 引擎是否已正确安装。

3.如果遇到报错:docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: TLS handshake

解决办法

docker默认的源为国外官方源,下载速度较慢,可改为国内源

编辑或新建配置文件 /etc/docker/daemon.json

daemon.json

{

    "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"],

    "live-restore": true

}

重新启动docker服务

 $ systemctl restart docker

然后继续

$ sudo systemctl start docker

参考地址:https://blog.csdn.net/qq_35606010/article/details/104750391

  • 后续步骤(可忽略,只是官方参考)

官网地址:Post-installation steps for Linux | Docker Documentation

  • 使用Docker安装Java 1.8(温馨提示:Tomcat会自带JDK,但是Jenkins要用)
  1. docker查看可用jdk
docker search jdk

  1. 安装1.8版本
docker pull kdvolder/jdk8
  1. 查看本地镜像
docker images

  1. 启动并查看镜像

启动:

docker run -di --name=jdk1.8 kdvolder/jdk8

查看:

docker ps
  1. 进入镜像
docker exec -it 6d0fc81e5cd9 /bin/bash
  1. 查看版本
java -version

参考链接:Docker安装JDK1.8版本_Jack魏-CSDN博客_docker安装jdk1.8

  • 使用Docker安装并启动MySql
  1. 查看可用版本
docker search mysql
  1. 这里直接安装5.7版本
docker pull mysql:5.7
  1. 查看是否安装完成
docker images

  1. 启动运行镜像
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  1. 查看镜像
docker ps

  1. 进入Mysql并启动服务
docker exec -it f2a9f7c626f8 /bin/bash    (f2a9f7c626f8是你的容器ID,也可以填容器名称)

mysql -h localhost -u root -p

参考链接:Docker 安装 MySQL | 菜鸟教程

  • 使用Docker安装并启动Tomcat
  1. docker下载tomcat,不指定版本则会下载最新版
docker pull daocloud.io/library/tomcat:9.0.0.M27
  1. 查看本地docker镜像
docker images
  1. 启动tomcat指定端口(建议直接查看下方 5启动挂载命令)
docker run -d -p 8080:8080 tomcat       -d表示后台运行,-p端口映射  

  1. 重启tomcat
docker restart tomcat

启动成功但是不能正常访问,请参考(tomcat9会有该问题,如果用启动挂载就不会了):

Docker 解决tomcat容器启动成功,无法访问的问题_OY-CSDN博客_docker tomcat启动后,远程不能访问

  1. tomcat启动挂载
docker run --name tomcat -d -p 8080:8080 -v /usr/local/tomcat/packge:/usr/local/tomcat/webapps -v /usr/local/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -v /usr/local/tomcat/conf/web.xml:/usr/local/tomcat/conf/web.xml -v /usr/local/tomcat/log:/usr/local/tomcat/logs tomcat(直接给镜像ID也可以)
  1. 查看tomcat日志
docker logs -f tomcat
  1. 跨域如何处理(利用Nginx反向代理解决同源问题)?
# 配置反向代理,解决跨域问题
location /plmn {
	proxy_pass   http://www.plmn.club:8081/plmn;
}

  • 使用Docker部署Nginx
  1. docker下载nginx,不指定版本则会下载最新版
docker pull nginx
  1. 运行(建议直接查看下方 3启动挂载命令)
docker run -d --name nginx -p 80:80 nginx

安装参考地址:Docker快速入门总结笔记_huangjhai的博客-CSDN博客

安装vim参考地址:Docker容器安装Vim - 简书

  1. 启动挂载
docker run --name nginx -d -p 80:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/vue:/usr/share/nginx/html -v /usr/local/nginx/log:/var/log/nginx nginx 
  1. 设置容器自动启动
docker update --restart=always tomcat
  1. 启动redis并设置密码
docker run --name redis -p 6379:6379 -d --restart=always 7614ae9453d1 redis-server --appendonly yes --requirepass "Glf924058449/"
  1. 利用docker-compose管理容器
version: '3.8'

services:

  redis:                     # 服务的名称

    restart: always          # 代表只要Docker启动,那么这个容器就跟着一起启动

    image: redis     # 指定镜像路径

    container_name: reids    # 指定容器名称

    command: redis-server --port 6379 --requirepass Glf924058449/  --appendonly yes

    ports:

      - 6379:6379        # 指定端口号的映射

    environment:

      TZ: Asia/Beijing                 # 指定时区



  tomcat:

    restart: always          # 代表只要Docker启动,那么这个容器就跟着一起启动

    image: daocloud.io/library/tomcat:9.0.0.M27     # 指定镜像路径

    container_name: tomcat    # 指定容器名称

    ports:

      - 8080:8080

    environment:

      TZ: Asia/Beijing

    volumes:

      - /usr/local/tomcat/packge:/usr/local/tomcat/webapps      - /usr/local/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml      - /usr/local/tomcat/conf/web.xml:/usr/local/tomcat/conf/web.xml

      - /usr/local/tomcat/log:/usr/local/tomcat/logs        # 映射数据卷
  1. 运行docker-compose文件
$ docker-compose up -d
  • 几个命令*
  1. 查看tomcat运行状态:
ps -ef | grep tomcat
  1. 显示正在运行和停止的容器
docker ps -a
  1. Docker进入指定的目录:
docker exec -it b2064b998774 /bin/bash   #b2064b998774:你的容器ID
  1. 退出终端,直接输入exit
  2. 重新启动已停止的容器
 docker start ovcer_the_container
  1. 重启Docker
systemctl restart docker
  1. 查看容器的挂载信息
docker inspect tomcat
  1. 镜像拉取地址
    1. Docker Hub
    2. https://hub.daocloud.io/

命令参考地址:docker | Docker Documentation

总学习文档

  1. 2小时搞定Docker:

Docker实战[搞定Docker只需2小时]_哔哩哔哩_bilibili

  1. 视频笔记:

Docker教程 - 多课网

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

破烂码农

感谢支持,如有需求,请留言!

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

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

打赏作者

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

抵扣说明:

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

余额充值