docker|部署及简单使用(代码片段)

maikucha maikucha     2023-03-09     230

关键词:

环境:VMware + centos7 + docker17.05.0

一、安装docker

1、修改ifcfg-ens33

配置虚拟机的网络,保证可以正常联网

命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改:ONBOOT=yes

命令:systemctl restart network.service

1、更新yum包

命令:yum update

2、添加yum的Docker包仓库

命令:vi /etc/yum.repos.d/docker.repo

内容:

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

3、安装docker引擎

命令:yum install docker-engine

4、启动docker引擎

命令:service docker start

5、查看docker版本号

命令:docker version

二、docker简单使用

1、拉取镜像

命令:docker pull centos

从公有的镜像注册中心下载镜像,后面我们会构建私有的注册中心,用于管理团队内部的镜像

2、查看镜像

命令:docker images

3、创建容器

命令:docker run -i -t centos /bin/bash

运行centos镜像生成容器,并进入容器,输入exit指令可以退出

4、其他容器相关命令

查看:docker ps -a

技术图片

CONTAINER_ID是容器的唯一标识,后面关闭、重启、删除都会用到

关闭:docker stop  42efdf85af21

重启:docker restart 42efdf85af21

删除:docker rm 42efdf85af21

三、构建镜像

1、通过容器生成镜像

命令:docker commit 42efdf85af21 jyy/centos

将上面的容器重新生成一个名为“jyy/centos”的镜像

命令:docker images

技术图片

2、使用Dockerfile构建镜像

构建一个centos镜像,并在镜像里面配置jdk,同时可以查看jdk版本

1)下载linux版本的jdk文件,放在任意目录下

2)并在同一目录下,创建Dockerfile文件

技术图片

内容:

FROM centos:latest                            --来自哪个镜像
MAINTAINER "jyy"<[email protected]>    --创建者信息
ADD jdk-8u201-linux-x64.tar.gz /opt    --拷贝jdk到镜像中的/opt目录,并解压
ENV JAVA_HOME /opt/jdk1.8.0_201   --设置JAVA_HOME
ENV PATH $JAVA_HOME/bin:$PATH  --设置环境变量
CMD java -version                                --输出java版本

3)构建镜像

命令:docker build -t jyy/centos-jdk .

使用-t选项来指定镜像的名称,并读取当前目录(即.目录)中的Dockerfile文件

命令:docker images

技术图片

命令:docker run jyy/centos-jdk

技术图片

四、配置私有registry

1、运行registry镜像

命令:docker run -d -p 5000:5000 --restart=always --name registry registry:2

2、上传镜像

命令:docker pull ubuntu:16.04

命令:docker tag ubuntu:16.04 localhost:5000/my-ubuntu

将“ubuntu:16.04”更名为“localhost:5000/my-ubuntu”

命令:docker push localhost:5000/my-ubuntu

上传镜像

可以在浏览器中查看上传结果:

命令:docker image remove ubuntu:16.04

           docker image remove localhost:5000/my-ubuntu

移除本地ubuntu镜像

命令:docker pull localhost:5000/my-ubuntu

从私有registry上获取my-ubuntu镜像

以上内容,构建了一个简单的镜像中心,但是只能内部访问,显然这不能满足实际的生产需要,所以我们需要继续构建一个可以外部访问的镜像中心。

一个可以外部访问的镜像中心需要使用TLS进行安全加固。

1)我们使用openssl生成证书,在生成证书之前,需要修改一个配置,否则会报出如下错误:

x509: cannot validate certificate for <ipaddress> because it doesn‘t contain any IP SANs

命令:vi /etc/pki/tls/openssl.cnf

修改内容:ip地址为本地地址

[ v3_ca ]
subjectAltName=IP:192.168.186.128

2)生成证书

命令:mkdir certs

cd certs

openssl genrsa -out domain.key 2048

openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt

技术图片

3)将生成的私有证书追加到系统的管理证书中,否则会报出如下错误:

x509: certificate signed by unknown authority

命令:cat domain.crt >> /etc/pki/tls/certs/ca-bundle.crt

重启服务:systemctl restart docker

4)运行镜像,在证书的上层目录下执行

命令:

docker run -d   --restart=always   --name registry   -v "$(pwd)"/certs:/certs   -e REGISTRY_HTTP_ADDR=0.0.0.0:443   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt   -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key   -p 443:443   registry:2

技术图片

5)上传本地镜像

命令:docker tag localhost:5000/my-ubuntu 192.168.186.128:443/my-ubuntu

docker push 192.168.186.128:443/my-ubuntu

技术图片

上传成功!!!

6)在另一台docker客户端上,上传镜像到镜像中心

命令:docker tag centos 192.168.186.128:443/centos

docker push 192.168.186.128:443/centos

会抛出如下错误:

x509: certificate signed by unknown authority

同上,将证书拷贝一份,再追加到系统的管理证书中即可

命令:scp [email protected]:/etc/docker/certs/domain.crt /etc/docker/certs/

cat domain.crt >> /etc/pki/tls/certs/ca-bundle.crt

重启服务:systemctl restart docker

docker push 192.168.186.128:443/centos

技术图片

上传成功!!!

参考网址:https://docs.docker.com/registry/deploying/

docker的部署及使用(代码片段)

Docker部署及使用1.安装docker1.查看系统环境:[[email protected]~]#cat/etc/redhat-releaseCentOSLinuxrelease7.3.1611(Core)[[email protected]~]#uname-r3.10.0-514.el7.x86_64[[email protected]~]#systemctls 查看详情

docker的部署与相关命令(代码片段)

Docker的部署与相关命令一、部署20版docker1、关闭防火墙及安全机制2、设置阿里云镜像源3、安装Docker-CE4、配置阿里云的镜像加速5、优化网络二、docker基础命令1、docker简单命令2、容器的操作3、私有仓库的操作4、Docker数据卷和数... 查看详情

docker的安装及简单使用(代码片段)

官网:https://www.docker.com/官网安装教程:https://docs.docker.com/engine/install/centos/安装1.卸载旧版本sudoyumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logr 查看详情

docker了解及初步学习(代码片段)

...部署十几个服务变得比较麻烦,后来技术经理想到了使用Docker,现在也来学习如何快捷的部署自己的项目。  刚开始学习当然是先安装了,这里使用的macOS,安装和其他的软件没有什么 查看详情

docker简单了解及安装使用(代码片段)

docker一、概述1.1设计宗旨1.2特点1.3Docker与虚拟机的区别1.4Docker核心概念镜像容器仓库二、服务安装2.1准备工作2.2安装docker安装依赖包设置阿里云镜像源安装Docker-CE并设置为开机自动启动查看版本信息三、docker镜像操作3.1搜索镜像... 查看详情

docker简单了解及安装使用(代码片段)

docker一、概述1.1设计宗旨1.2特点1.3Docker与虚拟机的区别1.4Docker核心概念镜像容器仓库二、服务安装2.1准备工作2.2安装docker安装依赖包设置阿里云镜像源安装Docker-CE并设置为开机自动启动查看版本信息三、docker镜像操作3.1搜索镜像... 查看详情

深入了解rabbitmq工作原理及简单使用(代码片段)

...实践RabbitMQ事务和Confirm发送方消息确认——深入解读使用Docker部署RabbitMQ集群你不知道的RabbitMQ集群架构全解RabbitMQ简介在介绍RabbitMQ之前实现要介绍一下M 查看详情

使用docker超简单部署自己的ghost博客(代码片段)

使用阿里云容器服务部署Ghostblog使用阿里云镜像安装mysql数据库服务mysqldbtest:restart:alwaysports:-‘3306:3306/tcp‘environment:-MYSQL_MAJOR=5.7-MYSQL_ROOT_PASSWORD=×××××-MYSQL_DATABASE=ghost-MYSQL_USER=ghost-MYSQL_PASSWORD=ghost 查看详情

kubernetesinaction:2开始使用kubernetes和docker(代码片段)

2、开始使用Kubernetes和Docker说明本章内容涵盖使用Docker创建、运行及共享容器镜像在本地部署单节点的Kubernetes集群在GoogleKubernetesEngine上部署Kubernetes集群配置和使用命令行客户端——kubectl在Kubernetes上部署应用并进行水平伸缩在... 查看详情

docker的简单使用(代码片段)

目录:Docker的安装及使用安装常用命令DockerfileDocker本地私有仓库的创建及使用Docker-composeDemo:docker部署flaskDockerdocker-ce开源docker-ee收费Docker的安装卸载原来的dockeryumremovedocker下载阿里云的docker仓库wget-O/etc/yum.repos.d/docker-ce.repohttps... 查看详情

01.docker原理部署及常用操作命令(代码片段)

原文:01.Docker原理部署及常用操作命令1|0Docker的来源及构造:容器是一种基础工具:泛指任何用于容纳其他物品的工具,可以部分或完全封闭,被用于容纳,储存,运输物品: 物品可以被放置在容器中,而容器可以保护内容物:... 查看详情

docker简单部署elasticsearch(代码片段)

一、ElasticSearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索... 查看详情

docker简单部署elasticsearch(代码片段)

一、ElasticSearch是什么?Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过,Elasticsearch不仅仅是Lucene和全文搜索... 查看详情

docker部署项目完全使用指南(代码片段)

Docker部署项目环境准备Docker安装启动Java环境安装Docker远程访问配置Docker重启IDEA配置Docker项目配置配置pom.xml文件配置Dockerfile文件Docker配置Maven打包生成Docker镜像总结Linux操作命令Docker操作命令环境准备Docker安装启动检查系统内核... 查看详情

docker部署项目完全使用指南(代码片段)

Docker部署项目环境准备Docker安装启动Java环境安装Docker远程访问配置Docker重启IDEA配置Docker项目配置配置pom.xml文件配置Dockerfile文件Docker配置Maven打包生成Docker镜像总结Linux操作命令Docker操作命令环境准备Docker安装启动检查系统内核... 查看详情

docker容器简介及命令(代码片段)

文章目录dockerdocker简述docker基本组成安装dockerdocker命令docker服务相关命令docker镜像相关命令docker容器相关命令docker容器的数据卷docker应用部署部署mysql部署tomcat:部署nginx部署redis部署私有仓库:dockerdocker简述Docker是一个... 查看详情

docker架构原理及简单使用(代码片段)

...,只是再最下面标注参考连接谢谢一、简介  1、了解docker的前生LXC     LXC为LinuxContainer的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的... 查看详情

1docker部署及基础理论(代码片段)

1、Docker入门简介  Docker技术类似码头上看到的集装箱,最早集装箱没有出现的时候,码头上有许多搬运的工人在搬运货物,有了集装箱以后,搬运货物变得简单,通过集装箱的搬运模式更加单一、高效,将货物打包在集装箱... 查看详情