docker操作简易指南

docker:开源容器引擎:GO开发,apache2.0开源协议

打包应用到容器中,共用宿主机资源(轻量级),使用沙箱机制,C/S结构

概念:

docker image:创建容器的模板

docker container:独立的应用,一个或一组

docker register:代码仓库

6.5epel以上含有docker repo

docker安装:

nmcli connection delete ens33

nmcli connection add type ethernet con-name ens33 ifname ens33 autoconnect yes

nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes    or:

    nmcli connection modify ens33 ipv4.method manual ipv4.addresses IP/24 ipv4.gateway IP ipv4.dns IP connection.autoconnect yes 

nmcli connection up ens33

pingwww.baidu.com

rm -f /etc/yum.repos.d/*

curl -OL /etc/yum.repos.d/http://mirrors.163.com/.help/CentOS7-Base-163.repo

yum repolist

yum install -y docker

docker存储配置:

NFS/gluster/LV

vim /etc/sysconfig/docker-storage-setup

: r /usr/^#参考的配置文件

DEVS=/dev/sdb    #新挂载的设备

VG=zqydockervg #任意的名字

source docker-storage-setup(脚本可以反复使用)

systemctl enable docker;systemctl start docker

如果先启动了docker,需要:

rm -rf /var/lib/docker/ ; source docker-storage-setup

单机docker可以不做以下部分:

systemctl disable firewalld;systemctl stop firewalld

setenforce 0


image下载

docker version

docker images

docker search debian #official官方镜像

docker pull docker.io/debian:version number #version number没有默认下载最新版本latest

国内镜像加速器:

hub-mirror.c.163.com

vim /etc/sysconfig/docker

vim /etc/docker/daemon.json

{

  "registry-mirrors":["http://hub-mirror.c.163.com"]

}

systemctl restart docker

需要的镜像:

for i in nginx:1.12 mysql:5.5 httpd:2.4 debian:8.10 centos:6.9 php:5.5 registry ;do docker pull $i;done

latest会每次检查版本

docker run -it --rm docker.io/debian:8.10 /bin/sh        #/bin/sh可以缩写为bash

debian与centos类似命令:rpm=dpkt;apt-get=yum

/etc/apt/sources.list=repofile


apt-get upgrade

apt-get isntall apache2

apt-cache search apache2=yum search httpd


docker run -d -p 80:80 httpd #-p 端口转发:真机:容器

curl 真机IP


docker exec -it containerIP|containerName bash

find / -name idex.html

ls -l /usr/local/apache2/htdocs/index.html


docker ps #正在运行的容器 -a查询所有容器

CTRL+D退出容器


docker rm containerIP    #退出的容器IP

docker stop container,docker kill -s KILL containerIP    #停不下来强杀容器 

docker logs containIP


image导入导出

docker save debian >/tmp/debian.tar

docker rmi debian

docker load < /tmp/debian.tar 


image制作

dockerfile:

https://hub.docker.com/_/httpd/

抄一个dockerfile:/tmp/Dockerfile

docker build -t zqy/zqy:v1 /tmp

文件名必须叫Dockerfile

vim /tpm/Dockerfile

FROM centos#基础镜像

MAINTAINER zqy "[email protected]"

RUN /bin/echo 'root:redhat'|chpasswd

EXPOSE 22

ADD 

CMD /usr/sbin/sshd -D

docker history 


容器构建镜像:

docker run -it --name zqy debian bash#在容器中进行自定义

exit

docker commit -m "zqy v1" -a=zqy ContainerName zqy/zqy:v1    #提交镜像,-m:描述 -a:作者 本地镜像库/镜像名称:版本号

docker run -it --name zqy debian bash#在容器中进行自定义,容器进入exit状态后

docker export -o /tmp/zqy.tar ContainerName

ll -h /tmp/zqy.tar

docker import -m "zqy v2" /tmp/zqy.tar zqy/zqy:v2

docker images

docker logs ContainerName

docker events -f image=zqy/zqy:v2 --since 1467302400

docker history zqy/zqy:v2

#####    常见容器介绍    ######

应用类容器:nginx、httpd -P:随机端口 -p:指定端口 -d:后台容器

docker run -d -P --name zqyhttpd httpd:2.4

curl localhost:port|127.0.0.1:port

docker exec -it containername bash    #容器内操作

docker stop containername

--restart=always:docker run中自动启动

docker rm `docker ps -q`

挂载卷:容器的永久性存储

docker run -d -P -v 真机路径(可以没有,会自动建):容器路径 --name http httpd bash

docker cp httpd:filename /tmp    #

docker cp /etc/fstab httpd:tmp    #

docker run -it -d -v /nginx:/usr/share/ nginx bash

docker run -it -d -P -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_USER=zqy -e MYSQL_PASSWORD=zqy -v /mysql:/var/lib/mysql --name mysql mysql

-e:容器作者设定参数

真机登陆:

mysql -hIP -Pprot -uroot -p123456

docker run -it --name centos --link mysql centos    #加入环境变量,容器间建立连接

cat /etc/hosts

docker inspect centos    #详细信息

本地镜像仓库:registry

login:master

vim /etc/hosts

ip registry

ip node2

ip node1

ip master

docker pull registry

docker run -it -d -p 5000:5000 --restart=always --name registry registry sh

find / -name registry  #/var/lib/registry

docker tag debian:latest registry:5000/zqy/registry:latest    #打标

vim /etc/docker/daemon.json

{"registry-mirrors":["http://hub-mirror.c.163.com"],"insecure-registry":["registry:5000"]}

sytemctl restart docker

docker push registry:5000/zqy/registry:latest

login:node2/node1    #下载image

挂存储

yum install docker -y

vim /etc/sysconfig/docker-storage-setup

docker-storage-setup

vgs

lvs

systemctl restart docker;systemctl enable docker

vim /etc/docker/daemon.json

docker pull registry:5000/zqy/registry:latest

本地镜像支持各节点push/pull镜像

你可能感兴趣的:(docker操作简易指南)