基础 -- Linux(六)软件安装 Docker

什么是Docker?


Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroupnamespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runCcontainerd

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment)系统进行自动部署。

而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。

Docker 的安装


ubuntu 16.04为例子 Docker的安装

curl -fsSL get.docker.com -o get -docker.sh
sh get-docker.sh --mirror AzureChinaCloud

等待几分钟后,测试安装

docker version

ubuntu 18.04安装docker

# 更新软件源
sudo apt-get update
# 安装所需依赖
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# 安装 GPG 证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 新增软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新软件源
sudo apt-get -y update
# 安装 Docker CE 版
sudo apt-get -y install docker-ce
# 开启 Docker Service
systemctl enable docker.service

Docker 加速器


Docker 配置镜像加速器

/etc/docker 文件夹下创建daemon.json,没有就创建,有就修改。此处使用个人的阿里镜像加速。

{"registry-mirrors":["http://f1361db2.m.daocloud.io"]}

修改完后重启Docker

systemctl daemon-reload
systemctl restart docker

拉取镜像,用 tomcat 为例子

docker pull tomcat
docker pull tomcat:9-jre8

Docker命令


查看容器列表image

等待安装,安装完毕查看镜像

docker images

运行容器
tomcat 为例

docker run -p 8080:8080 tomcat

查看所有的容器

docker ps -a

删除容器

docker rm containerID

删除本地镜像

docker rmi tomcat

注意 删除镜像时,一定要确保改镜像创建的容器已关闭。

Docker 容器数据持久化


什么是数据卷?为什么使用数据卷

数据卷是一个提供一个或多个容器的特殊目录,他绕过UFS,可以提供很多特性

  1. 数据卷 可以在容器之间共享和重用。
  2. 对 数据卷 的修改会立马生效。
  3. 对 数据卷 的更新不会影响镜像。
  4. 数据卷 默认一直存在,即使容器被删除。

使用数据卷

使用数据卷,创建一个定制tomcat ROOT文件夹里只有一个index.html

cd /usr/local/docker  			## 进入docker文件夹
mkdir mytomcat					## 创建文件夹
cd mytomcat						## 进入 mytomcat
mkdir ROOT						## 创建ROOT
cd ROOT							## 进入ROOT
vi index.html					## 创建index.html 里面内容写 Hello Docker 
cd ..							## 返回 mytomcat
vi Dockerfile					## 定制镜像

Dockerfile

FROM tomcat

构建镜像

docker build -t mytomcat .

启动镜像

 docker run -p 8080:8080 -d -v /usr/local/docker/mytomcat/ROOT:/usr/local/tomcat/webapps/ROOT mytomcat													

-p 端口映射,-d 后台运行,-v 表示数据卷 宿主机地址:镜像地址

例子 (mysql)


Docker 部署数据库( mysql )

下载mysql镜像

docker pull mysql:5.7.22 	   ## latest版本我pull 不下来

通过数据卷运行

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/ect/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22

默认的配置会导致sql脚本过大,导入不进去,所以要手动修改配置文件
修改配置文件,设置导入脚本大小

cd /usr/local/docker/mysql/conf/mysql.conf.d
echo "max_allowed_packet= 128M" >> mysqld.cnf 

重新启动mysql,使用外部的客户端去链接。

发布了27 篇原创文章 · 获赞 4 · 访问量 920

猜你喜欢

转载自blog.csdn.net/weixin_42126468/article/details/103481080