docker基础学习

1. 安装docker

    注意   docker要求centos系统内核高于3.10

             通过uname -r 命令查看当前的内核版本, centos7以上其实内核都是3.10版本

              yum list docker-ce --showduplicates | sort -r    -- 查看可以安装的docker版本

#安装 yum 源 docker 

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

#安装 docker  此处安装的是18版本的,还有19,20等等更高版本     

yum -y install docker-ce-18.06.1.ce-3.el7

#启动

systemctl enable docker && systemctl start docker

#校验安装

docker version

#出现以下的客户端及服务端信息就是安装成功了


2.docker的架构要理解

Docker官方网站      Docker: Accelerated Container Application Development

 镜像搜索查询

https://hub.docker.com/

相当于控制台docker search java

 docker安装之后会有客户端、服务端以及docker远程仓库(类似maven的远程镜像仓库,地址:https://hub.docker.com/search?q=

 客户端:像是redis的客户端一样,输入docker命令就可以操作服务端

服务端:很重要,包括一个个小的docker容器和镜像,每一个docker容器就像是一个小的linux虚拟机一样

远程仓库:我们一般会设置一个阿里云的镜像地址(https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)我们拉取镜像就是从这个远程仓库中拉取的。

3.主要的docker命令:

docker pull redis #如果不指定版本,就是最新版本

docker images #查看下载到本地的镜像

docker run ... # 这个命令(最重要)新建并且启动一个容器

例如:docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0

或者可以更详细的写:

mkdir -p /home/mysql8/data /home/mysql8/config  /home/mysql8/logs

docker run  -d  \
--name mysql8 \
--privileged=true \
--restart=always \
-p 3310:3306 \
-v /home/mysql8/data:/var/lib/mysql \
-v /home/mysql8/config:/etc/mysql/conf.d  \
-v /home/mysql8/logs:/logs \
-e MYSQL_ROOT_PASSWORD=root \
-e TZ=Asia/Shanghai mysql:8.0.27 \
--lower_case_table_names=1 

-d # 后台运行

--name # 给容器起一个名字

-p # 对应的端口号 例如:docker run -p 91:80 nginx (91是宿主机上的端口 80是容器的端口)

--net #  网络模式:

      --net=bridge  # 默认模式 表示连接到默认的网桥 容器所在的网络是一个内网

     --net=host  # 容器使用宿主机的网络 容器和宿主机在同一个网段

docker ps # 查看运行的容器信息及状态

docker ps -a  # 查看运行和停止的容器信息及状态

docker rmi image的id  # 删除镜像

docker stop 容器id   # 停止正在运行的容器

docker rm 容器id  # 删除容器(之前先stop)

docker rm -f 容器id  # 强制删除容器(不用先stop)

docker restart 容器id   # 重启容器

docker start 容器id   # 启动已经停止的容器

docker inspect 容器id  #比如说想看看容器中的信息:ip等等

docker exec -it 容器id /bin/bash #进入正在运行的容器内部,进入成功就可以使用Shell命令了

docker 内部文件怎么查看_mob64ca12f3f05d的技术博客_51CTO博客

docker container logs 容器id      #查看容器日志

docker top 容器id #查看容器里的进程

docker cp 容器id:要拷贝的文件在容器里面的路径  宿主机相应的路径

例如:docker cp 容器id:/etc/nginx/nginx.conf   /mydata/nginx

docker cp 宿主机相应的路径  容器id:要拷贝的文件在容器里面的路径 

systemctl restart docker 重新启动docker

如果docker容器中无法使用vi、vim等,进入docker容器中,之后进行如下操作:

1.更新来源

apt-get update

2 . 可以安装vim的

apt-get install -y vim

当然也可以安装其他命令:

apt-get install iputils-ping #安装ping
apt-get install net-tools    #安装ifconfig

4.将自己的应用部署到docker容器中

jar或者war包容器是不认识的,怎么作自己的docker镜像?

在宿主机上创建一个文件夹docker-app,在docker-app中加入Dockerfile(名字不能错)文件,编辑这个Dockerfile文件

前提:jar包放在了docker-app下,和Dockerfile文件同一级目录。

from openjdk:11
ADD sa-token-demo-springboot-0.0.1-SNAPSHOT.jar /sa-token-demo-springboot-0.0.1-SNAPSHOT.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/sa-token-demo-springboot-0.0.1-SNAPSHOT.jar"]

保存,退出之后Build(构建镜像) :

docker build -t sa-token-demo-springboot:0.0.1 .

运行:

docker run -d -p 8082:8081 sa-token-demo-springboot:0.0.1

5.发布镜像:

首先需要在dockerHub上注册一个账号,之后docker login

login成功之后就要进行push

 先在镜像之前加一个分组名(分组名一般是账户名)

docker tag sa-token-demo-springboot:0.0.1 mmj/sa-token-demo-springboot:0.0.1

进行镜像推送

docker push  mmj/sa-token-demo-springboot:0.0.1

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值