docker-01

2019-12-11  本文已影响0人  你好_请关照

docker-01

官网地址:hub.docker.com

1.什么是容器

容器是隔离的环境中运行的一个进程,如果进程结束,容器就会停止,容器的隔离环境,拥有自己的ip地址,系统文件,主机名,进程管理

程序: 代码,软件,命令

进程:正在运行的程序

2:容器和虚拟化的区别

虚拟机: 硬件cpu支持(vt虚拟化),模拟计算硬件,走正常的开机启动

bios开机自检--根据bios启动项--读取硬盘第一个扇区grub,uefi, centos7, 加载内核,启动系统第一个进程/sbin/init systemd

容器: 不需要硬件cpu的支持,共用宿主机内核,启动容器的第一个进程,作用于linux 内核上的一个技术

容器优势: 启动快,性能高,损耗少,轻量级,

3:docker-ce的安装

主机名 内存 ip
docker01 2G 10.0.0.11
docker02 2G 10.0.0.12
#安装docker-ce
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

#验证
[root@docker01 yum.repos.d]# docker version 
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false

4:docker主要内容

docker是一个cs架构, docker主要内容:镜像 容器 仓库 网络 存储 监控

docker是一个软件的打包技术.

docker  run -d  -p 80:80  nginx:latest docker镜像名称
run 创建并启动一个容器
-d  放后台启动
-p  端口映射
nginx:latest docker镜像名称

5:docker镜像常用命令

docker search  搜索镜像, 优先选官方,stars数量多
docker pull    拉取镜像(下载镜像)
docker push    推送镜像(上传镜像)
docker load    导入镜像
   例子: docker load  -i  docker_nginx.tar.gz
docker save    导出镜像
   例子:docker save centos:7 -o docker_centos7.tar.gz
docker images   查看镜像列表
docker rmi      删除镜像
docker tag      给镜像打标签
docker inspect  查看镜像属性
docker history  查看构建的历史
docker 

6:docker容器的常用命令

docker  run 创建并启动容器
     例子:docker run  -d -it -p 80:80  nginx:latest
     
     如果不加 -ti bash 命令执行了自动会退出,加-ti 后docker命令会为容器分配一个伪终端,并接管其stdin/stdout支持交互操作,这时候bash命令不会自动退出

docker create  创建容器 --name
docker start   启动容器
docker stop   停止容器
docker restart 重启容器
docker kill   强制停止容器
docker ps     查看容器列表  -a 查看所有容器
docker rm     删除容器
    批量删除所有容器 docker rm -f `docker ps -a -q`
docker  exec   进入正在运行的容器
       例子: docker exec  -it  容器id/容器名字   /bin/bash(/bin/sh)

容器的初始命令,必须夯住(前台一直运行),否则容器就会退出.

nginx -g 'daemon off;'

7:docker端口映射

docker run
-p  宿主机端口:容器端口
-p  宿主机ip1:宿主机端口:容器端口
-p  宿主机ip1::容器端口   随机端口映射
-p  宿主机ip1::容器端口/udp   使用udp协议做随机端口映射
-p 80:80  -p 3306:3306
-p 1111-1119:1111-1119  端口范围映射

8:docker数据卷

docker run
-v  宿主机目录:容器目录
-v  容器目录  #创建一个卷,来持久化容器的目录下的数据
--volumes-from  跟某一个容器挂载所有相同的卷

9:手动制作docker镜像

制作一个基于centos系统的nginx镜像(单服务)
思路:还记得上面说的吗?必须使容器的初始命令必须夯住(在前台运行),想办法让启动的服务在前台运行。nginx -g 'daemon off;' 就是让nginx程序在前台运行

1:启动一个纯净的centos:6.9容器,安装nginx
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install nginx -y
2:把安装好服务的容器,提交为镜像
docker container commit eb109f194821 centos6.9_nginx:v1

3:测试镜像的功能
docker run -d  -p 82:80 centos6.9_nginx:v1 nginx -g 'daemon off;'

制作一个基于centos6系统的kod网盘的镜像(多服务)

思路:还记得上面说的吗?必须使容器的初始命令必须夯住(在前台运行),那在多服务里也是如此,想办法让最后执行启动的一个服务启动命令在前台夯住,或者使用一个能够持续夯住的命令来实现,比如 tail -f 、top 等

1:启动一个centos6.9_nginx:v1,再安装php
yum install php-fpm php-gd php-mbstring -y
vi /etc/php-fpm.d/www.conf
service php-fpm start
cd /etc/nginx/conf.d/
vi default.conf 
mkdir /html
cd /html
wget http://192.168.19.200/191127/kodexplorer4.40.zip
curl -o kodexplorer4.40.zip http://192.168.19.200/191127/kodexplorer4.40.zip
yum install unzip -y
unzip kodexplorer4.40.zip 
chown -R nginx:nginx .

vi /init.sh
#!/bin/bash

service php-fpm start
nginx -g 'daemon off;'

2:把安装好服务的容器,提交为镜像
docker commit 47208e3e3796 kod:v2
3:测试镜像的功能
docker run -d -p 83:80 kod:v2 /bin/bash /init.sh

制作一个基于centos7系统的nginx+sshd双服务镜像

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install nginx -y
yum install openssh-server -y
yum install initscripts -y
/usr/sbin/sshd-keygen
echo '123456'|passwd --stdin root
/usr/sbin/sshd -D
vi /init.sh
上一篇下一篇

猜你喜欢

热点阅读