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
- 访问http://Docker 宿主机IP:92/,可看到下图所示
使用Dockerfile构建微服务镜像
以项目05-ms-eureka-server为例,将该微服务的可运行jar包构建成docker镜像
- 将jar包上传linux服务器/app/eureka目录,在jar包所在目录创建名为Dockerfile的文件
- 在Dockerfile中添加以下内容
#基于哪个镜像
From java:8
#将本地文件夹挂载到当前容器
VOLUME /tmp
#复制文件到容器
ADD microservice-eureka-server-0.0.1-SNAPSHOT.jar /app.jar
#声明需要暴露的端口
EXPOSE 8671
#配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","/app.jar"] 注意:[]前有空格
- 使用docker build 命令构建镜像
#docker build -t microservice-eureka-server-0.0.1 .
#格式 docker build -t 镜像名称标签 Dockerfile的相对位置
在这里,使用-t 选项指定了镜像的标签,执行该命令后,终端将会输出如下的内容:
- 启动镜像,加-d可在后台启动
#docker run -p 8761:8761 microservice-eureka-server-0.0.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