ToB企服应用市场:ToB评测及商务社交产业平台

标题: Docker在linux上的安装与使用(亲测) [打印本页]

作者: 张春    时间: 2024-8-14 04:33
标题: Docker在linux上的安装与使用(亲测)


一、Docker安装

1、安装前必读

在安装 Docker 之前,先说一下设置,我这里是Centos7;Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。
注意:本文的下令使用的是 root 用户登录执行,不是 root 的话所有下令前面要加 sudo
2、更新 yum 包

使用 root 权限更新 yum 包(生产情况中此步操作需慎重)
yum -y update

3、卸载旧版本(假如以前安装过,否则此步骤可以忽略)

  1. yum remove docker-ce docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
复制代码
4、安装相应的安装包


  1. yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码

5、设置 yum 源

  1. yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码

6、安装最新版本的 Docker Engine-Community 和 containerd

  1. yum -y install docker-ce docker-ce-cli containerd.io
复制代码

7、选择性安装(查看可用版本有哪些);若已经做了第六步,无需操作此步骤

  1. yum list docker-ce --showduplicates | sort -r
复制代码
选择一个版本并安装:yum install docker-ce-版本号
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)不停到第一个连字符,并用连字符(-)分隔。例如:docker-ce-24.0.6。
  1. yum -y install docker-ce-24.0.6 docker-ce-cli-24.0.6 containerd.io
复制代码


8、查看安装版本

  1. docker -v
  2. docer version
复制代码


9、启动Docker,并设置开机主动启动

  1. systemctl start docker
  2. systemctl enable docker
  3. #停止docker
  4. systemctl stop docker
  5. #重启docker
  6. systemctl restart docker
  7. #查看状态
  8. systemctl status docker
复制代码


运行Hello-world
通过运行 hello-world 镜像来验证是否精确安装了 Docker Engine-Community
  1. docker run hello-world
复制代码

10、卸载docker

(1).卸载依赖
 sudo yum remove docker-ce docker-ce-cli containerd.io
(2).删除文件夹
     sudo rm -rf /var/lib/docker
     sudo rm -rf /var/lib/containerd
二、Docker使用

1、镜像操作

#查看镜像
docker images
#移除镜像是 rmi
docker rmi  <镜像【IMAGE】 ID>
#查找镜像
docker search tomcat
#拉取tomcat镜像(默认为 latest版本)
docker pull tomcat:latest
#欺压删除镜像(-f)
docker rmi -f hello-world
#一次欺压删除多个镜像(多个镜像中心用空格隔开hello-world 和nginx)
docker rmi -f hello-world nginx
#一次删除全部的镜像
docker rmi -f $(docker images -qa)
2、容器操作

#查看运行的容器
docker ps
#列出当前所有正在运行的容器+汗青上运行过的
docker ps -a
#列出上一次运行的容器
docker ps -l
#列出前三次运行的容器
docker ps -n 3
#只显示容器编号
docker ps -q
#以交互式且伪终端打开的方式运行centos容器,且容器名字为mycentos
docker run -it --name mycentos centos
#关闭容器后退出容器
exit
#容器不克制退出
ctrl+p+q
#启动容器
docker start <容器 ID>
#重新启动容器
docker restart <容器 ID>
#克制容器(温柔克制)
docker stop <容器【CONTAINER】ID>
#克制容器(欺压克制,相当于拔电源)
docker kill <容器 ID>
#删除已克制的容器
docker rm <容器 ID>
#欺压删除容器(没有克制的也会被删除)
docker rm -f <容器 ID>
#一次性欺压删除多个容器
docker rm -f $(docker ps -aq) 大概  docker ps -aq |xargs docker rm -f
#以后台模式启动一个容器(启动守卫式容器)
docker run -d centos
docker run -d centos /bin/sh -c "while true; do echo hello zhangyanfen; sleep 2; done"
#查看容器日志(-t 加入时间戳; -f跟随最新的日志打印; --tail 数值 显示最后多少条)
docker logs -t -f --tail 3  <容器ID>
#查看容器内运行的进程
docker top <容器ID>
#查看容器内部细节
docker inspect <容器ID>
#未退出容器后,重新进入容器;(attach直接进入容器启动下令的终端,不会启动新的进程)
docker attach <容器ID>
#未退出容器的前提下,在宿主机中执行容器的下令,直接返回给宿主机(是在容器中打开新的终端,并且可以启动新的进程)
docker exec -t <容器ID>  ls -l /tmp
#进入容器
docker exec -it f07f19e6eb63  /bin/bash
#从容器内拷贝文件到主机上
docker cp <容器ID>:容器内路径  目的地主机路径
docker cp 73c418ba31bc:/tmp/zyf.txt  /opt

运行centos容器,并进入centos伪终端 -i 交互式; -t 伪终端
docker run -it <镜像 ID>

未退出容器的前提下,在宿主机中执行容器的ls -l /tmp下令,直接返回给宿主机
docker exec -t <容器ID>  ls -l /tmp

三、Dock卷操作

Docker卷与容器绑定后,容器就可以与宿主数据互通;即便容器克制后,再次启动容器,宿主的数据仍可以同步到容器中。(ro的意思为read only,启动下令添加ro后,容器中不能编辑或添加文件,只有宿主机可以编辑或添加)
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
docker inspect <容器ID>
例:
docker run -it -v /opt/vdata:/opt/mydata --name centos centos
docker inspect 4a9cbd7f02c3

四、Docker安装Tomcat

1、查找Docker Hub上的tomcat镜像

  1. docker search tomcat
复制代码

2、拉取tomcat镜像

  1. docker pull tomcat
  2. docker images
复制代码

3、使用tomcat默认的设置来启动一个tomcat容器

  1. docker run -it -p 8888:8080 --name tomcat tomcat
复制代码

注意
当Tomcat版本过高时,根据IP地址和端口号访问大概会出现下面问题:出现404
是由于webapps文件夹下内容为空,内容都在webapps.dist 目录下,办理办法如下:
1.进入tomcat容器
docker exec -it 容器id /bin/bash
2.ls 查看文件夹内容,可以发现下面有webapps文件夹和webapps.dist文件夹,将webapps.dist下的内容全部异动到webapps中。
mv webapps.dist/* webapps

4、拷贝容器内tomcat设置文件和日志到本地准备映射

在主机中创建文件夹
  1. mkdir -p /opt/app/tomcat
  2. docker cp tomcat:/usr/local/tomcat/conf /opt/app/tomcat/conf
  3. docker cp tomcat:/usr/local/tomcat/logs /opt/app/tomcat/logs
复制代码
5、克制tomcat,并删除容器

  1. docker stop tomcat
  2. docker rm tomcat
复制代码
6、创建卷并运行tomcat容器

  1. docker run -it -p 8888:8080 --name tomcat \
  2. -v /opt/app/tomcat/webapps:/usr/local/tomcat/webapps \
  3. -v /opt/app/tomcat/conf:/usr/local/tomcat/conf \
  4. -v /opt/app/tomcat/logs:/usr/local/tomcat/logs --restart=always tomcat
复制代码
7、生成新的镜像文件

  1. docker commit -a='作者' -m='镜像描述' 容器ID 新的镜像名/名称:版本  如下:
  2. docker commit -a="zhangyanfen" -m="有doc的tomcat" f07f19e6eb63  zf/mytomcat:1.0
复制代码

根据新创建的镜像,启动新的容器
  1. docker run -it -p 7777:8080 --name tomcat zf/mytomcat:1.0
复制代码












免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4