docker(一)

docker与虚拟机的区别:

 

 

 

Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。Docker未虚拟OS


docker关键技术:

Namespace:名称空间【各种名称空间起到绝对隔离的作用】

联合文件系统【为docker镜像准备,启动容器的时候挂载不同路径,也能起到一定的隔离作用】

Cgroups【隔离资源(cpu/内存)】

 

 

 centos安装docker

1.安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

 

卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

 

 2、设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

 3、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

 

 4、安装docker

 yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce

 

 

 

 

 5、启动停止docker

systemctl start docker  #启动docker服务
systemctl stop docker  #关闭docker服务

6、查看版本
docker version

7、配置加速器
vim /etc/docker/daemon.json


{
  "registry-mirrors": [
    "http://hub-mirror.c.163.com"
  ]
}

https://registry.docker-cn.com
http://hub-mirror.c.163.com
https://docker.mirrors.ustc.edu.cn



重新加载配置文件并重启Docker

systemctl daemon-reload
systemctl restart docker

可以使用以下命令验证镜像源是否修改成功

docker info


docker基本命令:
https://hub.docker.com/

 

 


docker pull jenkins:版本号 如不指定,默认latest 【jenkins最新的版本已经停止维护】 docker pull jenkins/jenkins:lts

 

 

 

 

 

如果删除镜像失败,提示容器正在使用, 

docker rm -f 容器名  【删除容器】

查看已经安装的镜像

 docker rmi -f $(docker images -aq)     删除全部镜像

 

 REPOSITORY 仓库+名称

TAG 版本号

IMAGE ID 全球唯一ID

CREATED 制作时间

SIZE 磁盘空间

没网的情况下利用其他的镜像

docker save jenkins > myjenkins.war    本地打包

docker load < myjenkins.war   解包

 

 docker tag jenkins jenkins:8.8.0

 

 

容器运行:

 

 

 

 docker run -d --name=myjenkins jenkins/jenkins:lts

docker ps -s -a

 

 

 

 

 

 

 

 

   

docker run -d --name=myjenkins -p 8080:8080 jenkins/jenkins:lts

 

 前面的8080是宿主机的,后面的8080是容器的


 

 启动的时候一般用 docker logs -f myjenkins【及时打印,类似于tail -f】

 

 

 

 docker run -d --name=myjenkins -p 8080:8080 -p 50000:50000 -v /home/mydocker/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

 

 docker run -d --name=myjenkins -p 8080:8080 -p 50000:50000 -v /home/mydocker/jenkins_home:/var/jenkins_home --env JAVA_OPTS="-Xmx8192m" jenkins/jenkins:lts

JAVA_OPTS 为jenkins环境变量的key值;每个容器的环境变量不一致,可以通过env搜索

注意:此处需要修改目录权限   

jenkins_home⽬录的拥有者为root⽤户,⽽容器中jenkins useruid1000

 

  • chown -R 1000:1000 /home/mydocker/jenkins_home

 

启动的时候就需要挂载

 

登录容器:

 

 

 

 宿主机与容器之间copy文件:

 

 

登录容器中也可以查看

 

 查看当前docker 信息:docker info

查看容器元信息:

 

 

 

 两个容器间通信:

 

 

 原理是后者把需要依赖的容器实例的网络信息保存在自己的环境变量中

 注意:--link 只能在一台机上使用,,,
posted @ 2020-08-08 10:39  高母寨寨委书记  阅读(199)  评论(0编辑  收藏  举报