Docker的使用
完成的工作
- Docker安装
- Docker基本操作
- MySQL与容器化
- Docker网络
- Docker 仓库
- 容器监控与日志
- Golang应用容器化
Docker安装
为了使apt可以通过https使用Repository,先安装以下包:
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
检查GPG Key信息是否正确
sudo apt-key fingerprint 0EBFCD88
截图如下
添加源信息
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
源检查
sudo apt-cache madison docker-ce
检查结果:
安装docker
sudo apt-get install -y docker-ce
安装验证
sudo docker version
Docker基本操作
帮助
docker --help
运行容器
运行第一个容器
sudo docker run hello-world
sudo docker run -it ubuntu bash
显示本地镜像库内容
docker images
运行中的容器
- 显示运行中容器
docker ps
- 显示所有容器(包含已中止)
docker ps -a
- 继续运行原容器并进入
docker restart peaceful_bassi
docker ps
docker attach peaceful_bassi
MySQL与容器化
拉取 MySQL 镜像
sudo docker pull mysql:5.7
检测本地包
sudo docker images
启动服务器
sudo docker run -p 3307:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
启动 MySQL 客户端
mysql 基本数据库操作
- 创建数据库 test :
create database test;
- 查询数据库:
show databases;
写表
检测最后删除
挂载操作
找到MySQL
sudo docker exec -it mysqltest bash
ls /var/lib/mysql
如下图所示
挂载位置
创建卷并挂载
启动客户端容器链接服务器
Docker网络
管理容器网络
备制支持 ifconfig 和 ping 命令的 ubuntu 容器
docker run --name unet -it --rm ubuntu bash
apt-get update
…
apt-get install net-tools
apt-get install iputils-ping -y
ifconfig
ping命令测试
启动另一个命令窗口,由容器制作镜像
创建自定义网络
docker network create mynet
在两个窗口创建 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
u1从mynet中断开了,连到了bridge中
Docker 仓库
使用阿里云容器镜像服务(免费)实践
先进行登录
添加标签和上传
可以看到已经上传
运行
退出
容器监控与日志
检查docker的状态
docker info
docker info --format {{.ServerVersion}}
查看容器内进程
docker top
docker stats
容器详细信息
容器的日志
查看日志
Golang应用容器化
首先下载Golang的容器
然后运行golang环境
这里使用我们上次写的项目进行测试,故要更改设置后进行获取
最后运行即可
感悟与总结
通过本次实验,我从下载docker开始,学习了docker的基本应用。如何使用MySQL容器化,如何使用docker网络,还部署到了阿里云上使用了docker仓库。并学会了docker的日志功能,最后练习了golang的容器化。
总的来说,通过老师的课件由浅入深的进行学习,初步掌握了docker的运用。当然,我知道,docker的细节还有很多。以后会更加深入的进行学习,尽快掌握这个工具,为以后应用打下基础。