Docker安装

本文详细介绍了如何在CentOS系统上安装Docker,包括检查内核版本、更新系统、卸载旧版本、安装Docker、设置镜像加速器、启动和验证Docker服务,以及Docker的常用命令如搜索镜像、下载镜像、列出镜像、删除镜像等。此外,还讲解了如何使用Dockerfile构建Docker镜像,包括创建Dockerfile、构建镜像和启动容器的步骤。最后,提供了容器管理和镜像管理的相关命令。
摘要由CSDN通过智能技术生成

1.Docker要求CentOS系统的内核版本高于3.10,查看本页面的前提条件来验证你的CentOS版本是否支持Docker。
 通过uname -r 命令查看你当前的内核版本
 uname -r
2.使用root 权限登录Centos. 确保yum 包更新到最新
yum -y update
3.卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine
4.安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persitent-data lvm2
5.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6.可以查看所以仓库中所以docker版本,并选择特顶版本安装
yum list docker-ce --showduplicates | sort -r
7.安装docker
sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1
sudo yum install <FQPN>  #例如:sudo yum install docker-ce-18.03.1.ce
8.启动并加入开机启动
systemctl start docker 启动docker
systemctl enable docker 开机启动设置
9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
10.卸载docker
yum -y remove docker-engine
注意:需要配置镜像加速器
#docker search java
#cd /etc/docker
查看有没有daemon.json 这里docker默认的配置文件
如果没有新建,如果有,则修改。
配置加速器:
#vim daemon.json
{
 "registry-mirrors": ["https://m9r2r2uj.mirror.aliyuncs.com"]
}
保存退出。
重新docker服务
#service docker restart 
成功
Docker 常用命令
1.搜索镜像
可使用docker search命令搜索存放在Docker Hub中的镜像。执行该命令后,Dockers就会在Docker Hub中搜索含有的
java 这个关键词的镜像仓库。
#docker search java
2.下载镜像
使用命令docker pull 命令即可从Docker Registry上下载镜像,执行该命令后,Dockers会从Docker Hub的java仓库下载
最新版本的java 镜像,如果要下载指定版本,则在java后面加冒号指定版本,如:docker pull java:8
# docker pull java:8
3.列出镜像
使用docker images命令即可列出已下载的镜像
#docker images
REPOSITORY:镜像所属仓库名称 SIZE:镜像大小
4.删除本地镜像
使用docker rmi 命令即可删除指定镜像
docker rmi java 

容器相关命令
1.新建并启动容器
使用以下docker run命令即可新建并启动一个容器,该命令是最常用命令,它有很多选项,下面将列举一些常用的选项
-d 选项:表示后台运行
-P 选项:随机端口映射
-p 选项:指定端口映射,有以下四种格式。
       --ip:hostPort:containerPort
      --ip::containerPort
     --hostPort:containerPort
    --containerPort
 -network选项:指定网络模式,该选项有以下参数:
     --network=bridge:默认选项,表示连接到默认的网桥
    --network=host:容器使用宿主机的网络
    --network=container:NAME-or-ID:告诉Docker让新建的容器使用已有的容器的网络配置
    --network =none:不配置该容器的网络,用户可自定义网络配置
#docker run -d -p 91:80 nginx
这样就能启动一个Nginx容器。在本例中,为docker run 添加了两个参数,含义如下:
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
访问http://Docker宿主机IP :91/,将会看到nginx的主界面
需要注意的是:使用docker run 命令创建容器时,会先检查本地是否存在指定镜像,如果本地不存在该
名称的镜像,Docker就会自动从Docker Hub下载镜像并启动一个Docker容器。

2.列出容器
用docker ps 命令即可列出运行中的容器
#docker ps
3.停止容器
使用docker stop 命令,即可停止容器
#docker stop f0b
其中 f0b是容器的ID,当然也可以使用docker stop 容器名称来停止指定容器
4.强制停止容器
可使用docker kill 命令发送SIGKILL信号来强制停止容器
#docker kill f0b
5.启动已停止的容器
使用docker run 命令,即可新建并启动一个容器,对于已停止的容器,可使用docker start命令来启动
#docker start f0b
6.查看容器所以信息
#docker inspect f0b
7.查看容器日志
#docker container logs f0b
8.查看容器里的进程
#docker top f0b
9.进入容器
使用docker container exec 命令用于进入一个正在运行的docker容器,如果docker run命令运行容器的时候,没有使用-it
参数,就要用这个命令进入容器,一旦进入了容器,就可以在容器的Shell执行命令了
#docker container exec -it f0b  /bin/bash
10.删除容器
使用docker rm 命令即可删除指定容器
#docker rm f0b
该命令只能删除已停止的容器,如需要删除正在运行的容器,可使用-f 参数

访问:curl +ip 
修改主机名:hostnamectl set -hostname doccker01
安装docker :yum install docker
创建用户:user add docker -d /home/docker -s /bin/bash
                 echo "docker:docker"|chpasswd
授权宿主:chown docker:docker /data/dockerfiles -R

将微服务运行在docker 上

使用Dockerfile构建Docker镜像

Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节

先来编写一个最简单的Dockerfile,以前文下载的Nginx镜像为例,来编写一个

Dockerfile修改该Nginx镜像的首要

1.新建文件夹/app,在app目录下新建一个名为Dockerfile的文件,在里面增加

如下内容:

FROM nginx

RUN echo '<h1>This is Tuling Nginx!!!</h1>'>usr/share/nginx/html/index.html

该Dockerfile非常简单,其中的FORM、RUN都是Dockerfile的指令。FROM指令

用于指定基础镜像,RUN指令用于执行命令。

2.在Dockerfile所在路径执行以下命令构建镜像:

#docker build -t nginx:tuling .

其中:-t 指定镜像名字,命令最后的点(.)表示Dockerfile文件所在路径

3.执行以下命令,即可使用该镜像启动一个Docker容器

#docker run -d -p 92:80 nginx:tuling

  1. 访问http://Docker 宿主机IP:92/,可看到下图所示

  

使用Dockerfile构建微服务镜像

以项目05-ms-eureka-server为例,将该微服务的可运行jar包构建成docker镜像

  1. 将jar包上传linux服务器/app/eureka目录,在jar包所在目录创建名为Dockerfile的文件
  2. 在Dockerfile中添加以下内容

  #基于哪个镜像

  From java:8

  #将本地文件夹挂载到当前容器

  VOLUME /tmp

  #复制文件到容器

  ADD microservice-eureka-server-0.0.1-SNAPSHOT.jar /app.jar

  #声明需要暴露的端口

  EXPOSE 8671

  #配置容器启动后执行的命令

  ENTRYPOINT ["java","-jar","/app.jar"]  注意:[]前有空格

  1. 使用docker build 命令构建镜像

#docker build -t  microservice-eureka-server-0.0.1   .

#格式 docker build -t 镜像名称标签 Dockerfile的相对位置

在这里,使用-t 选项指定了镜像的标签,执行该命令后,终端将会输出如下的内容:

  1. 启动镜像,加-d可在后台启动

#docker run -p 8761:8761 microservice-eureka-server-0.0.1

  1. 访问http://Docker镜像宿主IP:8761/ ,可显示首页

docker 命令

设置docker系统启动:systemctl enable docker
启动docker:  systemctl start docker
查看docker状态: systemctl status docker
停止: systemctl stop docker
重启: systemctl restart docker
查看所有容器列表:docker ps –a
查看启动的容器列表:docker ps
启动容器:docker start 容器ID或容器名
重启容器:docker restart 容器ID或容器名
限时关闭容器:docker -t stop 容器ID或容器名,如60秒以内关闭容器:docker -60 stop,容器60秒以内未关闭,则直接关闭容器。
直接关闭容器:docker kill 容器ID或容器名
删除终止状态的容器:docker rm 容器id
删除运行中的容器:docker rm -f 容器id
停止所有容器:docker stop $(docker ps -a -q)
删除所有终止状态的容器:docker rm $(docker ps -a -q)
查看镜像列表:docker images
删除镜像:docker rmi <image id> 或者docker rmi 镜像名称:版本(TAG)
删除id为none的镜像:docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
删除所有未使用的镜像:docker rmi $(docker images -q)
查看容器日志:docker logs 容器id

查询docker : rpm -qa | grep docker
删除docker :rpm -e  docker-ce-18.03.1.ce-1.el7.centos.x86_64

卸载docker:

yum -y remove docker-ce docker-cli-io containerd.io

yum remove docker \
         docker-client \
         docker-client-latest \
         docker-common \
         docker-latest \
         docker-latest-logrotate \
         docker-logrotate \
         docker-selinux \
         docker-engine-selinux \
         docker-engine
 
rm -rf /etc/systemd/system/docker.service.d
 
rm -rf /var/lib/docker
 
rm -rf /var/run/docker
————————————————
版权声明:本文为CSDN博主「MonkeyKing-Sun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunhuansheng/article/details/100719021

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值