docker 安装

  1. https://www.cnblogs.com/wwtao/p/11473938.html
  2. https://www.cnblogs.com/elvi/p/8463812.html

什么是容器:是应用程序封装和交付的一种核心技术

容器技术由以下几个内核核心组成:Cgroups (control , groups)  资源管理

  namespace 进程隔离

selinux 安全

由于是在物理机上的隔离 所以 启动一个容器就像启动一个进程一样快速

什么是docker: 是完整的一套容器管理系统

docker提供了一组命令,让用户更加方便直接地  使用容器技术 而不用过多关系底层内核技术

docker的优点: 相比于传统的虚拟化技术 容器更加简单高效

传统的虚拟机需要给每个vm安装操作系统

容器使用的公共共享库与程序

缺点:容器的隔离性没有虚拟化强,共用linux内核,安全性有先天缺陷 ,selinux难以驾驭 ,容器的监控与排错是挑战

 

基于阿里源 可以直接yum install docker

 

systemctl restart docker

 

ifconfig 出现 docker0  说明环境部署成功

 

 docker version        //查看版本

在docker中容器是基于镜像启动的 镜像是容器的核心 镜像采用分层设计 使用快照的cow技术,确保底层数据不丢失

官方镜像仓库 https://hub.docker.com 公共的镜像仓库(Registry)

加速器  https:

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

注意:如果您之前查看旧教程,修改了 docker.service 文件内容,请去掉您添加的内容(--

检查加速器是否生效

执行 $ docker info,如果从结果中看到了如下内容,说明配置成功。

Registry Mirrors:
 https://dockerhub.azk8s.cn/

registry-mirror=https://dockerhub.azk8s.cn

 

docker 命令

docker images 查看镜像

docker pull 下载镜像 docker push 上传镜像  上传到官方  需要注册

 

docker search 查找镜像

 docker save docker.io/busybox:latest -o busybox.tar  将本地镜像导出为tar包

docker load -i nginx.tar 将tar包导入到镜像

 docker rmi  docker.io/nginx 删除镜像

for i in * ; do docker load -i $i; done 导入多个镜像   *表示当前路径下的tar包文件名

启动镜像

1)启动centos镜像生成一个容器

启动镜像时若不知道后面的命令加什么:

1、可以猜(如:/bin/bash、/bin/sh)

2、可以不加后面的命令,默认启动

docker run -it docker.io/centos /bin/bash
run命令 相当于创建 启动 连接 也就是 create start attach (可理解为 console命令连接的终端)
docker history 镜像制作历史
docker inspect 查看镜像底层信息
docker tag 修改镜像名称与标签
docker images 查看镜像列表 包含 镜像仓库名称 镜像标签 镜像id 创建时间 大小





2.docker加速 

 

复制代码
vi  /etc/docker/daemon.json   

改: {}

为:

{

"registry-mirrors": ["https://e9yneuy4.mirror.aliyuncs.com"]

}

 systemctl daemon-reload

systemctl restart docker

 docker pull docker.io/centos  

从 Docker 镜像仓库获取镜像的命令是 docker pull。其命令格式为:

docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
https://www.cnblogs.com/zsl-find/articles/11308814.html 本公司用的docker




公司私有镜像
docker pull  java:8-jre-alpine 别人做好的镜像 可以直接拿来用
 
#docker
FROM java:8-jre-alpine
WORKDIR /home
ADD ./target/dygacontentmanagement-app.jar dygacontentmanagement-app.jar
EXPOSE 8808
VOLUME ["/home"]
ENTRYPOINT ["java", "-jar", "dygacontentmanagement-app.jar", ">", "spring.log", "&"]
复制代码
mkdir target
cp dygacontentmanagement-app.jar /root/app/target/
cd /root/app

docker build -t dgcmt/app .

 

192.168.1.115 8808  dygaContentManagement-app 192.168.1.115 8812  dygaContentManagement-service

docker exec -it 9c97898a932b /bin/sh
docker run -itd -p 8812:8812 dgcmt/service:latest
nohu java -jar dygacontentmanagement-app.jar > spring.log &
docker build -t dgcmt/app . docker run -itd -p 8808:8808 dgcmt/app:latest
http://192.168.1.197 admin 12345
vi /etc/docker/daemon.json { "insecure-registries": [ "192.168.1.197" ] }
systemctl daemon-reload && systemctl restart docker
docker login 192.168.1.197 -uadmin -p12345
docker tag dgcmt/app:latest 192.168.1.197/library/dgcmt/app:latest docker push 192.168.1.197/library/dgcmt/app:latest docker pull 192.168.1.197/library/dgcmt/app:latest

复制代码公司需要
build.sh

#!/bin/bash
A=dygacontentmanagement-service
A1=dygacontentmanagement/service
B=dygacontentmanagement-app
B1=dygacontentmanagement/app
# rmi images
docker rmi $A1 $B1
docker rmi 192.168.1.197/library/$A1 192.168.1.197/library/$B1

cd /built/$A
docker build -t $A1 .
docker tag $A1:latest 192.168.1.197/library/$A1:latest
docker push 192.168.1.197/library/$A1:latest

cd /built/$B
docker build -t $B1 .
docker tag $B1:latest 192.168.1.197/library/$B1:latest
docker push 192.168.1.197/library/$B1:latest
复制代码

 

 









 

posted @ 2019-09-06 11:47  冬青护城河  阅读(250)  评论(0)    收藏  举报