Docker基础学习

Docker容器的相关实践

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker环境的安装(Centos7)
升级内核

Docker要求Centos内核版本大于3.10,所以如果版本较低需要升级内核

先查看当前内核版本

uname -r

若版本不大于3.10,进行升级

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  
yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml  

查看默认启动顺序

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg  

默认启动的顺序是从0开始,新内核是从头插入,所以需要选择0。

grub2-set-default 0

重启

reboot

查看新的内核版本

uname -r  

删除旧的内核

yum remove kernel

可能遇到的问题:
1.提示Another app is currently holding the yum lock; waiting for it to exiting错误:运行rm -f /var/run/yum.pid命令直接删去进程。
2.提示警告:RPM 数据库已被非 yum 程序修改。错误:无须在意,可能是包的依赖并不全部由yum完成。

安装Docker
卸载旧版本Docker

删除docker和下的所有配置文件、镜像容器等等。

yum -y remove docker*
sudo rm -rf /var/lib/docker
安装新的Docker

使用阿里云的镜像安装Docker。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版Docker。

sudo yum install doker-ce

启动Docker并把它加入到开机启动。

sudo systemctl start docker
sudo systemctl enable docker

重新加载设置 重启引擎

systemctl daemon-reload
systemctl restart docker

查看docker是否可用。
在这里插入图片描述

运行第一个镜像

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

sudo docker run hello-world

结果为下面这样就表示安装成功。
在这里插入图片描述

Docker的基本操作
运行一个乌邦图镜像
 docker run -it ubuntu bash

运行结果如下
在这里插入图片描述
-it 参数,通过终端与进程(容器)交互,stdin,stdout,stderr定向到 TTY。具体到每个参数:

  • -t参数:在新容器内指定一个伪终端或终端。
  • -i参数:允许你对容器内的标准输入 (STDIN) 进行交互。

注意第十行 root@cdf1866bd294:/#,此时我们已进入一个 ubuntu15.10 系统的容器。

如果没有-it参数,那么-i默认为false-t默认为false,也就是说,不会保持输入流开放,也不会开启伪造终端。
在这里插入图片描述

显示本地的镜像库内容
docker images

在这里插入图片描述

获得帮助
docker --help

在这里插入图片描述

显示运行中的镜像
docker ps

在这里插入图片描述

显示所有容器(包括已终止的)
docker ps -a

在这里插入图片描述

继续运行原容器并进入
docker restart laughing_kare
docker ps
docker attach laughing_kare

注意后面的laughing_kare是镜像的名字,看上一步“显示所有容器(包括已终止的)”结果,选择第二个容器镜像(ubuntu)。
在这里插入图片描述

拉取MySQL镜像
docker pull mysql:5.7
docker images

在这里插入图片描述

构建Docker镜像练习
使用MySQL容器

启动服务器并为容器命名。

sudo docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

在这里插入图片描述

因为我之前以及运行过上面的命令,所以无需再次为容器命名。

启动客户端。

docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -P3306 -uroot -proot

在这里插入图片描述

查看数据库文件。

docker exec -it mysql2 bash
ls /var/lib/mysql

在这里插入图片描述

以下三条命令依次是,取出所有停止的容器;删除所有未使用的卷;列出所有的卷。

docker container prune -f
docker volume prune –f
docker volume ls

在这里插入图片描述

以下三条命令依次是,删去所有容器,只返回数字ID;创建卷(命名为mydb);启动mysql容器服务端,并为其设置名称。

docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7

在这里插入图片描述

以下三条命令依次是,创建名称为myclient的mysql客户端容器,并且与mysql2容器关联(通过–link完成),同时为mysql2设置别名mysql;查看环境配置;从3306端口登录mysql2容器的数据库。

docker run --name myclient --link mysql2:mysql -it mysql:5.7 bash
env
mysql -hmysql -P3306 -uroot -proot

在这里插入图片描述
在这里插入图片描述

Docker Compose 与多容器应用自动化部署

使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具。

安装Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
查看是否安装成功
docker-compose -v
使用yaml文件进行自动化部署

首先需要编写yaml文件(stack.yml)。
在这里插入图片描述
之后执行该文件。
在这里插入图片描述

注意:

  1. *.yml文件内所有:‘-’符号的后面都必须有空格。
  2. image字段后的镜像必须在运行pull命令拉取到本地后后才能使用。

因为在docker pull adminer时非常慢,所以尝试了更换镜像地址。

sudo vi /etc/systemd/system/multi-user.target.wants/docker.service

修改原ExecStart字段为ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ac.mirror.aliyuncs.com

Docker网络

查看各种模式的网络。

在这里插入图片描述

运行一个ubuntu容器,并在运行完毕后就删去。

在这里插入图片描述

在ubuntu容器内安装网络相关的一些工具包。

在这里插入图片描述
在这里插入图片描述

查看网络配置

在这里插入图片描述

对主机地址进行ping。

在这里插入图片描述

创建自定义网络

在这里插入图片描述

容器监控与与日志

检查docker的状态

在这里插入图片描述
在这里插入图片描述

查看容器内进程

在这里插入图片描述
在这里插入图片描述

容器详细信息

在这里插入图片描述

容器日志查看

在这里插入图片描述

Docker图形化界面
docker run -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值