Docker 版本
– 社区版
– 企业版
• 与 Kubernetes 集成(在Linux版本号很重要呢!)
– 社区版 17.03.2 ce
• CentOS(虚拟机)安装 docker
– 官方指南
• https://docs.docker.com/install/linux/docker-ce/centos/#installdocker-ce
– 中文指南
• http://www.cnblogs.com/freefei/p/9263998.html
• 如果你不是root用户
– 请将用户加入 docker 用户组
安装Docker
使用存储库
在首次安装 Docker 引擎之前,您需要设置 Docker 存储库。之后,可以从存储库安装和更新 Docker。
设置存储库
- 更新包索引和安装包以允许通过 HTTPS 使用存储库:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加 Docker 的官方 GPG 密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装Docker引擎和容器
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
检查安装:
$ docker version
验证Docker引擎是否安装正确
$ sudo docker run hello-world
Docker基本操作
- 运行镜像
- 显示本地镜像库内容
- 获得帮助:
- 显示运行中容器
- 显示所有容器
- 继续运行原容器并进入
MySQL与容器化
拉取MySQL镜像
构建Docker镜像练习
录入以下内容:
FROM ubuntu
ENTRYPOINT ["top", "-b"]
CMD ["-c"]
构建镜像
运行镜像
- 使用MySQL容器
启动服务器
启动MySQL客户端
-
挂载卷保存db
查看数据库文件所在地址
-
创建并挂载
- 启动客户端容器链接服务器
- 挂载现有数据库
官网案例:
docker run -v "$PWD/data":/var/lib/mysql --user 1000:1000 --name
some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
- 修改容器配置
docker run --name some-mysql -v /my/custom:/etc/mysql/conf.d -e
MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
- Docker compose 与多容器应用自动化部署
下载:docker-compose(容器编排的原型)
编写:stack.yml
启动服务
编写stack.yml:
version: '3.1'
services:
db:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
启动服务
docker-compose -f stack.yml up
Docker网络
- 管理容器网络
- 备制支持 ifconfig 和 ping 命令的 ubuntu 容器
ping <your host ip> //可以ping通
- 启动另一个命令窗口,由容器制作镜像
- 创建自定义网络
- 在两个窗口创建 u1,u2 容器网络,并使用以下命令
docker run --name u1 -it -p 8080:80 --net mynet --rm ubuntu:net bash
docker run --name u2 --net mynet -it --rm ubuntu:net bash
docker inspect u1
docker network connect bridge u1
docker network disconnect mynet u1