java开发人员必备的docker学习笔记

0 454

一 docker安装与常用命令

docker 安装(centos7)

使用root账号登录系统:

 $ uname -r  //此命令查看内核版本,版本号大于必须3.10

确保 yum 包更新到最新

$ yum update

卸载旧版本(如果安装过旧版本的话)

$ yum remove docker  docker-common docker-selinux docker-engine

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$ yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装最新版本的Docker

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

启动Docker并设置开机启动

$ systemctl start docker
$ systemctl enable docker

验证Docker

$ docker version

docker 启动重启停止

启动docker  systemctl start docker
重启docker sudo service docker restart
关闭docker service docker stop  
关闭docker systemctl stop docker

docker 镜像运行

docker run -d -p 8080:80 镜像的名字:版本号 8080是主机的端口号 80是容器的端口号

-d 表示后台启动 返回容器的id
-t 表示开启虚拟终端,通常与 -i 同时使用
-i 以交互模式运行容器,通常与 -t 同时使用
-v 挂载目录 格式: -v 宿主机目录/容器目录
-p 端口映射 格式 -p 80:8080 80是宿主机端口:8080是容器的端口
--name 给容器起名 格式: --name myname

docker 删除操作

注意哦,首先删除容器才能删除镜像

docker ps -a 查看所有的容器
docker rm 容器id 删除对应的镜像容器
docker rmi 镜像ID 删除对应的镜像

docker stop $(docker ps -a -q) 停掉所有运行的容器
docker rm $(docker ps -a -q) 删除所有运行的容器
docker rmi -f 镜像ID 先停止容器再删除镜像 一步到位
docker rmi -f $(docker images -qa) 先停止所有容器然后删除所有的镜像

docker 容器进入

docker attach 容器id    备注:只要这个连接终止,或者使用了exit命令,容器就会退出后台运行
docker exec -it 容器ID /bin/bash 备注:exit退出,容器会在后台运行,实际中一般都是使用该方法进入容器

docker 日志查看

docker exec -it [id] bash  进入容器
tail -f paysite.log 实时滚动paysite.log日志文件
less paysite.log 查看paysite.log日志文件 b上翻 d下翻 G文件尾 g文件头

docker logs -f --tail=100 f44f38358b53 查看(容器ID:f44f38358b53)最近100行日志(启动不成功的情况 容器外)

docker Dockerfile构建镜像

docker 构建镜像之——jar包自定义镜像

  • 新建一个用于存放镜像的文件夹

  • 在新建的文件夹里面新建一个Dockerfile文件,(其中webpay.jar 改成你的jar包名称)

  • FROM livingobjects/jre8
    ADD webpay.jar app.jar
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xms2048m","-Xmx2048m","-Duser.timezone=GMT+8","/app.jar"]
  • cd切换至文件夹下,执行如下命令构建镜像(webpay是镜像的名字,修改为需要的镜像名字)

  • docker build -t="webpay" .
  • 构建完成之后通过 docker images 查看镜像是否构建成功

  • 启动镜像,执行如下命令

  • docker run -d --name webpay -p 8006:8001 -it -v /home/alljars/webpay.jar:/app.jar webpay:latest

docker 镜像提交

推送到hub服务器

推送到阿里云个人私服

docker 迁移与备份

备份镜像

docker save -o 备份镜像的名字 源镜像名字:tag版本号
举例:
docker save -o myself_mysql.tar mysql:5.5 //执行此命令会在宿主机跟目录下(/root)生成myself_mysql.tar

镜像还原

docker load -i 还原的镜像名字(带路径)
举例:
docker load -i myself_mysql.tar //执行此命令会从宿主机跟目录(/root)下加载 myself_mysql.tar

二 docker安装mysql并启动

拉取镜像:

$ docker pull mysql:5.7   拉取mysql5.7版本

运行一个容器,启动mysql5.7

$ docker run --name mysql57 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

三 docker安装redis并启动

首先拉取镜像

$ docker pull redis:latest

查看本地是否存在redis镜像

$ docker images

启动镜像

$ docker run -itd --name redis-test -p 6379:6379 redis

参数说明:

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

备注:密码启动

docker run --name redis -p 8001:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "dsl123@password"

评论