系统运维
使用CentOS在线安装:
yum? install? epel-release? ##安装epel源,需要开启CentOS的yum源
yum? install? docker? -y? ##同时安装docker-cli客户端
setenforce? 0 ##设置selinux为disable并重启
systemctl? start? docker
?
官方最新CE版安装:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo? ##官方repo源获取
(阿里云源安装:wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo)
yum list docker-ce –showduplicates | sort -r? ##查看版本
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
docker –version ##测试是否安装成功
?
(版本升级删除旧版本:yum? remove? docker? docker-common? docker-selinux? docker-engine)
?
Docker加速配置:
前提:方式不可同时使用、配置完成需要重启daemon
?
方式一:
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
? registry-mirrors: [https:/jzngeu7d.mirror.aliyuncs.com]
}
EOF
方式二:
vim? /etc/sysconfig/docker
OPTIONS=\\\’–selinux-enabled –log-driver=journald –signature-verification=false –registry-mirror=http://hub-mirror.c.163.com \\\’
if [ -z ${DOCKER_CERT_PATH} ]; then
? DOCKER_CERT_PATH=/etc/docker
fi
?
查看镜像:docker? images == docker? image? ls
docker? image? build ##
docker? image? history ##
docker? image? inspect? ##查看镜像属性信息
docker? image? pull/push? nginx:1.11 ##拉去和推送指定版本镜像
docker? image? rm? nginx ==? docker? rmi? nginx
docker? image? save、tag、load、import、 ##image可省略
?
查看信息:docker? info? ##使用docker? –help查看可使用命令
镜像重新标记:docker ?tag ?621d57f27e93 ?test:1.0
下载镜像:docker? pull? hub.c.163.com/library/mysql:latest? ##阿里云提供镜像加速器:cr.console.aliyun.com
上传镜像:docker? push?
保存镜像:docker? save? Mysql:5.6.34? >? /opt/MYSQL-5.6.34.tar.gz
加载镜像:docker? load ?<? /opt/mysql-5.6.34.tar.gz
导出镜像:docker? image? export? 容器id? >? xxx.tar(导出容器文件系统到tar归档文件)
导出镜像:docker? image? import? xxx.tar? test:latest(导入容器文件系统tar归档来创建镜像)
查看容器:docker? ps ##-a 查看所有,-aq查看ID,杀死容器docker? rm? -f? ID
?
运行容器:(需要每个容器必要的参数指定)
docker? run? –restart=always? –name=db? -dit ?-p? 3306:3306?
-e? MYSQL_ROOT_PASSWORD=redhat? -e? MYSQL_DATABASE=数据库名? hub.c.163.com/library/mysql
docker? run? -p? 3306:3306? mysql:5.6.34 ##指定容器中镜像版本来启动,如果未指定则会到镜像服务器中下载
?
docker? container? run:(其中container可以省略)
-p:作端口映射
-d:后台运行
-v? 宿主机目录:容器目录? :宿主机目录映射到容器,可用于做数据库的数据保存
-it:交互式分配tty
-e:添加变量,格式“-e? y=abc”
?
–name:在容器中命名
–ip? string:设置容器ip,只能用于自定义网络
–restart=always:当容器退出时重启,默认为no
–add-host? list:添加其他主机到容器中/etc/hosts
–dns? list:设置DNS服务器
–mount? mount:挂载宿主机分区到容器
–memory:容器可以使用最大内存量,-m
–memory-swap:允许使用交换内存量
–memory-swappiness=<0-100>:容器使用swap分区的百分比,默认为-1
–oom-kill-disable:当宿主机内存不足时,内核会杀死容器中的进程,建议使用-m参数之后再使用此参数
–cpus:限制容器使用cpu资源
–cpuset-cpus:限制容器使用特定cpu
?
docker? start? container_id1,container_id2……
docker? stop? ……
docker? restart? ……
docker? top? container_id? ##查看指定容器中的进程
docker? stats? container_id:查看资源使用情况
docker? port? container_id:查看端口映射
docker? update? [options]? container_id:在线调整内存、cpu限制(-c、-m)
?
docker? inspect? 容器id ##查看所有属性
docker? cp? 宿主机目录? 容器名:/目录? ##实现文件复制,也可反过来复制
docker? exec? 容器id? ip? a? ##查看分配的IP
docker? exec? -it? 容器id? bash? ?##-it分配终端,之后运行bash命令,之后输入的命令是在容器中输入和输出的
docker? container? attach? 容器id ##进入容器系统,退出使用“Ctrl p q”
?
docker? commit? 容器名? 镜像名:tag? ##将改变的数据保存并重新生成新的镜像,实现数据持久化(重启、删除数据都不会丢失)?
docker? logs? 容器id? ##查看日志,容器id使用“docker ps”查看
?
docker? rm? -fv? 容器id? ##删除容器,也可tag、短ID
docker ?rm ?$(docker ps -qa)? ##批量删除容器
docker rmi -f? REPOSITORY:TAG(或者镜像id) ##删除镜像
?
Docker主机数据挂载到容器:
①? volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)
②? bind? mounts:可以存储在宿主机系统的任意位置
③? tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统
Docker网络管理:
支持的网络模式:docker? network? ls
①? bridge:默认网络,Docker启动后默认创建一个docker0网桥,默认创建的容器会添加到这个网桥中
②? host:不会获取network namespace,而是与宿主机共用一个
③? none:获取独立的network namespave,但不配置任何网络
④? container:与指定容器使用同一个network? namespave,使用 –net=container:NAME_or_ID 指定
⑤? 自定义:自定义网桥,默认与bridge网络一样
docker私有仓库的搭建:
DockerHub:docker官方维护的一个公共仓库(https://hub.docker.com,其中包括了15000多个的镜像)
DockerPool:国内专业的docker技术社区(http://www.dockerpool.com,也提供官方镜像的下载)
?
搭建步骤:
①? 先拉取registry镜像(用来启动仓库)和busybox镜像(用来上传)
docker pull registry
docker pull busybox
②? 使用docker tag命令将这个镜像标记为x.x.x.x:5000/busybox
docker tag docker.io/busybox? ?x.x.x.x:5000/busybox
docker? images? ##查看镜像
③? 修改docker配置文件,增加参数 –insecure-registry=x.x.x.x:5000
(注:此处的参数指定为非安全模式,也就是http而不是https,然后重启docker服务)
④? 创建registry容器并启动
docker run -d -p 5000:5000 –privileged=true -v /myregistry:/var/lib/registry registry
(注:/tmp/registry是registry版本1的仓库目录,此处使用v2版)
⑤? 在客户端中输入如下命令,push镜像到仓库
docker push x.x.x.x:5000/busybox
⑥? 查看本地目录/myregistry以及在客户端上pull刚才push的镜像
tree? /myregistry/docker/
也可通过“curl http ://192.168.200.103:5000/v2/_catalog”查看
?
Harbor:企业级私有镜像仓库
Harbor是VMware开源的企业级Docker Registry项目,地址:https://github.com/vmware/harbor
?
?
docker中LNMP平台搭建:
步骤:
(1)创建自定义网络
docker? network? create? lnmp
?
(2)创建MySQL数据库容器
docker? run? -itd? –name? lnmp_mysql? –net? lnmp? -p? 3306:3306? –mount? src=mysql_vol,dst=/var/lib/mysql? -e? MYSQL_ROOT_PASSWORD=123456? mysql? –character-set-server=utf8
?
(3)创建所需数据库
docker? exec? lnmp_mysql? sh? -c? \\\’exec? mysql? -uroot? -p$MYSQL_ROOT_PASSWORD? -ecreate? database? wp\\\’
?
(4)创建PHP环境容器
mkdir? -p? /app/wwwroot
docker? run? -itd? –name? lnmp_web? –net? lnmp? -p? 808:80? –mount? type=bind,src=/app/wwwroot,dst=/var/www/html? richarvey/nginx-php-fpm
?
(5)以wordpress博客为例测试
wget? https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz
tar? zxvf? wordpress-4.7.4-zh_CN.tar.gz? -C? /app/wwwroot
浏览器访问:http://ip:808/wordpress
?
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码官网:www.west.cn