docker

系统运维

使用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

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » docker

登录

找回密码

注册