- 简介
- 概念
- 安装
- 使用
- 从概念到上手了解Docker
- Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,很容易地发布和应用到任意平台中
- 例如,我们的某个应用要依赖的环境包括
- 配置文件
- 代码
- tomcat
- JDK
- 操作系统
- 现在的物理服务器是很强大的,跑一个应用太浪费,但如果有多个应用,某个应用的内存泄漏会牵连到其他
- 这个问题可以使用虚拟机隔离来解决,但是一个虚拟机就需要一套完整的OS,浪费资源
- 所以Docker出现了,一个壳负责一个应用,一个机器上可以有几十个壳,共享OS、启动速度快、隔离
- 总结:可以把Docker理解为轻量级的可移植的虚拟机,无论是在本地还是部署到服务器,能保证环境一致且应用间隔离
- Developers Love Docker. Businesses Trust It.
- 使用前
- 使用后
- Docker 提供了一组应用打包、传输和部署的方法,以便你能更好地在容器内运行任何应用
- 使用前
- 在RedHat7.2操作系统中安装
- 可以使用uname -r查看内核版本,应该是不能低于内核版本高于 3.10
- 查看红帽版本号``
- 依次执行如下命令
yum install -y yum-utils device-mapper-persistent-data lvm2 # yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io # 静静等待 systemctl start docker systemctl enable docker
- 启动时报错:Job for docker.service failed because the control process...
- 执行docker version会看到Cannot connect to the Docker daemon...
- 目前看应该是网络原因,搭建网桥?防火墙的原因?daemon进程启动?
- 这么安装有问题,试试下面的方法:
yum remove podman-docker yum remove podman yum remove buildah sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce --nobest sudo systemctl enable --now docker sudo usermod -aG docker $USER # 把用户$USER追加到docker组中 sudo systemctl disable firewalld
- docker的常见命令
- 启动:systemctl start docker
- 关闭:systemctl stop docker
- docker的镜像称为image,类似于操作系统快照,是一个搭建好的运行环境(静态)
- 容器是container(动态),是image的实例,他们之间类似于类和实例化对象之间的关系
- 配置好证书后可以从仓库pull镜像:docker pull,使用 docker images 查看已经拉取的镜像
- 在该image上启动一个容器:docker run -t -i -w /home/dev/nba --name local_iso ci_builder_rhel72 /bin/bash
- ci_builder_rhel72是镜像名称
- --name 设置container名称
- -t:进入终端
- -i:通过容器的STDIN获取交互式连接,这两个参数一般一起使用:-idt
- -d:后台运行,退出容器也不会stop
- -w:决定进入容器后的目录
- /bin/bash:在container中启动一个shell
- 此时应该能看到:[root@790cfafd543d nba]#,这个790…是创建时返回的ID
- 查看container进程:docker ps,可以加-a参数
- 退出可以使用ctrl + d,或者exit
- 再次进入使用docker start -a local_iso,-a表示docker attach
- 一般会分两步,start&attach,一起执行会卡顿而且退出不stopped,不清楚原因!
- 这种方法进入,推出后container会stopped,ps会发现没了
- docker exec -it local_iso /bin/bash,这种方法推出后container不退出



