docker

docker概述

容器技术

自动化运维: ansible shell python docker gitlab

docker 容器 可以认为是直接使用物理硬件的虚拟机
镜像封装了应用 容器相当于是运行中的镜像
没有系统 直接基于物理硬件

缺点 容器的隔离性没有虚拟化强
共用linux内核 安全性有先天缺陷
SElinux难以驾驭
监控容器和容器排错是挑战

关闭防火墙
禁用Selinux

本地安装
#tar -xf docker.tar.gz
#cd docker/
#yum install -y *.rpm

互联网安装
mirrors.163.com -->centos 使用帮助 -->下载centos repo配置文件

启动服务
#systemctl restart docker.service
#systemctl enable docker.service

镜像是分层设计 而且是只读的 修改只能在原基础上 增加层次

下载镜像 hub.docker.com #官方站点
www.daocloud.io #国内站点

查看当前主机的镜像列表
#docker images

导入镜像
#docker load < docker_images/docker_images/nginx.tar

启动镜像
#docker run -p 80:80 nginx

查找 与系统相匹配的镜像 最好使用星多的 官方的
#docker search centos7

下载镜像
#docker pull 镜像名 #下载的镜像在docker images能够查看到

导出镜像
#docker save 镜像名 > /tmp/busybox.tar

删除镜像
#docker rmi 镜像名 如果有容器正在使用该镜像 则无法删除

查看镜像制作历史
#docker history centos

查看镜像底层信息
#docker inspect centos

停止容器
#docer stop 容器id/容器名

导入镜像
#cd /root/docker/docker_images
#docker load < ./nginx.tar
#docker load < ./centos.tar

导出镜像
#docker save nginx > /tmp/nginx.tar
#docker pull

1 配置物理主机 使用网易开源镜像站点 作为yum源
2 在线安装docker
3 下载busybox
docker search busybox
docker pull busybox
docker images

4 导出busybox
将导出的镜像 cp到虚拟主机并导入

#yum -y install docker
#docker search busybox
#systemctl restart docker
#systemctl enable docker
#docker search busybox
#docker pull busybox
#docker images
#docker save busybox > /tmp/busybox.tar
#ls /tmp/
#scp /tmp/busybox.tar 192.168.4.1:/root/docker/docker_images

使用docker
1 通过镜像启动容器
#docker run cenos echo hello
2 查看容器的运行状态
#docker ps
#因为echo hello 已经运行结束 所以容器停止了
3 查看所有容器
#docker ps -a 查看所有容器
第一列是容器id 第二列是容器基于的镜像 第三列是运行的命令 最后一列是容器的名字
4 启动容器 并进入容器
#docker run -it centos bash
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26fb42c1864c centos "bash" 35 seconds ago Up 30 seconds fervent_shaw

5 启动容器后 如果想返回宿主机 不停止容器 使用组合键 ctrl+q+p
#docker attach 26fb 接入容器
6 删除本地镜像
如果有容器正在使用镜像 则无法删除
7 停止容器
#docker stop 容器id
8 删除容器
#docker rm 容器id
9 删除镜像
#docer rmi 镜像名

重新导入centos镜像
启动并进入容器 在容器里配置 yum 源
安装net-tools 软件包 实现ifconfig命令
返回宿主机

使用docker tag 给镜像重命名 生成的 新的镜像 并不是将原有镜像复制一份 而是两个名字指向同一个镜像文件
#docker tag centos mycentos
#docker tag centos centos:ifconfig
#docker images
centos ifconfig 980e0e4c79ec 18 months ago 196.7 MB
mycentos latest 980e0e4c79ec 18 months ago 196.7 MB
#如果不指定标签 默认标签是latest

以后台的方式启动容器
#docker run -idt centos bash

只显示容器id
#docker ps -qa

批量删除docker容器
#docker rm $(docker ps -qa)
#docker rm -f $(docker ps -qa) #-f 强制删除 将运行状态中的容器也删掉

启动 停止 重启容器
#docker run -idt centos bash
#docker stop 1d6e
#docker start 1d6e
#docker restart 1d6e
#docker ps

进入容器
#docker attach 1d6e # exit会结束容器
#docker exec -it 1d6e bash #exit 不会结束容器

查看容器内进程信息
#docker top 1d

查看容器底层信息
#docker inspect 1d

1 启动两个容器 基于centos镜像 一个用于安装httpd 另一个用于安装 mariadb-server
2 在第一个容器上配置discuz论坛

步骤 1 启动容器 为其设置主机名
#docker run -p 80:80 --name web1 -h web1 -itd centos bash
#docker run -p 3306:3306 --name dbserver1 -h dbserver1 -itd centos bash
#docker attach web1
在web1上
#rm -rf /etc/yum.repos.d/*
#vi /etc/yum.repos.d/nnd.repo
[server]
name=server
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0
#yum repolist
#yum -y install httpd php php-mysql
#httpd -DFOREGROUND #前台运行apache
做完端口映射后 访问 192.168.4.1 能看到apache默认页面

在dbserver1
#yum -y install mariadb-server
#mysql_install_db
#chown -R mysql:mysql /var/lib/mysql
#mysqld_safe #前台运行mysqld

#docker exec -it dbserver1 bash
在dbserver1 上 授权
#mysql -uroot
\> grant all on . to admin@'%' identified by '123456';

把discuz 拷贝到web1上
#yum -y install lftp unzip
#lftp 192.168.4.254
#unzip Discuz_X3.0_SC_UTF8.zip
#cp -r upload/ /var/www/html/bbs
#chmod -R 777 /var/www/html/bbs

转载于:https://blog.51cto.com/2168836/2102953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值