docker

k8s中文网

Centos7.6部署k8s v1.16.4高可用集群(主备模式)

k8s实践(一):Centos7.6部署k8s(v1.14.2)集群

CentOS 6升级至Centos7

CentOS 6 to CentOS 7 Upgrade Using Red Hat Upgrade Tool


Docker 教程

Docker 容器使用

Docker 创建镜像、修改、上传镜像

docker-compose.yml的使用

Docker 国内仓库和镜像

Docker 微服务教程

Docker Dockerfile 定制镜像

Lazydocker简单的管理 Docker 容器

使用iptables为docker容器动态添加端口映射

磁盘空间维护:
docker system df
docker system prune     清理关闭的窗口、无用的数据卷、无tag的dangling镜像
docker system prune -a
docker container prune  清理所有终止状态的容器

docker tag ubuntu webapp            #镜像改名
docker build -t webapp -f ./docker/Dockerfile .
docker run -it -p9002:8088 -v ~/docker/hkcdBD/:/app/hkcdBD/ hkcdbd /bash

#多端口映射(默认端口8088)
#EXPOSE 8088/tcp   (默认tcp)
#EXPOSE 8089/udp  
docker run -it -p 9002:8088 -p 9003:8089 -v ~/docker/hkcdBD/:/app/hkcdBD/ hkcdbd /bash

docker stats --help
docker logs b643

-d后台运行容器:
docker attach b643
docker exec -it b643 /bin/bash      #退出容器时不会停止容器

docker stop b643
docker start b643                   #启动一个容器
docker restart b643

docker-compose命令

目前只能用pip2安装
pip install docker-compose

运行出错,原因是模块版本冲突
pip uninstall urllib3
pip uninstall chardet
pip install requests

安装docker包
docker-compose up
docker-compose -f docker.yml -d up  //后台运行
docker-compose stop
docker-compose rm

查看服务
docker-compose ps

docker-compose logs
docker-compose build    //重新构建服务

docker-compos pull

docker-compose restart

在指定的服务上运行一个命令
docker-composer run ubuntu ping docker.com

指定服务运行个数, service=num参数指定数量
docker-compose scale web=2 db=2

docker-compose start
docker-compose stop

Dockerfile设置
用 .gitignore 一样的语法写一个 .dockerignore ,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的。
用 -f ../Dockerfile.php 参数指定某个文件作为 Dockerfile 

docker命令

拉取镜像 docker pull ubuntu:13.10
查看镜像 docker images
删除镜像 docker rmi id/name
运行 doocker run -it ubuntu /bin/bash
查看运行的容器 docker ps
查看全部容器 docker ps -a
后台运行 docker run -itd --name ubun-test ubuntu /bin/bash
运行(退出停止容器) docker attach 2c2ff 或 ubun-test
运行容器 docker exec -it 2c2ff /bin/bash
停止容器 docker stop
重启容器 doocker restart 2c2ff
删除容器 docker rm -f 2c2ff
导出容器 docker export 2c2ff > ubuntu.tar
导入容器 cat ubuntu.tar \ docker import - ubuntu-v2
新建网络 docker network create -d bridge testnet
网络列表 docker network ls
删除网络 docker network rm testnet
连接网络 docker network connect testnet test1
断开网络 docker network disconnect testnet test1
连接容器 docker run -itd --name test1 --network testnet ubuntu /bin/bash docker run -itd --name test2 --network testnet ubuntu /bin/bash apt-get update apt install iputils-ping ping test1 ping test2 设置全部容器的DNS vim /etc/docker/daemon.json { "dns": [ "113.113.113.113", '8.8.8.8' ] }
docker command --help
docker stats --help


清理所有处于终止状态的容器
docker container prune

导入导出容器
docker export 2c2ff > ubuntu.tar
或
docker export ubun-test > ubuntu.tar

cat ubuntu.tar | docker import - ubuntu-v2
docker images
docker run -it ubuntu-v2 /bin/bash

容器的导出和载入
docker save -o v2.tar ubuntu-v2
docker load < v2.tar


设置共享文件夹(自动在docker中创建新文件夹/soft)
docker run -itd ubuntu -v ~/docker/share/:/soft /bin/bash
cp /etc/apt/source-list /soft/

web应用
docker pull training/webapp
docker run -d -P training/webapp python app.py
docker ps       查看打开的端口
按端口在浏览器打开显示hello world:
http://localhost:9001

docker默认开放5000端口, 将宿主机9999端口映射到docker上
docker run -d -d 9999:5000 training/webapp python app.py

查看日志
docker logs -f 2c2ff

查看内部进程
docker top 2c2ff

查看底层信息
docker inspect 2c2ff

安装docker

yum erase docker \
        docker-clientdocker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotatedocker-selinux \
        docker-engine-selinux \
        docker-engine \
        docker-ce

yum install -y yum-utils device-mapper-persistent-data lvm2

设置stable镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引
yum makecache fast

安装docker
1、安装指定版本:
yum list docker-ce.x86_64  --showduplicates | sort -r 
例如:指定版本(docker-ce-18.09.9)进行安装:
yum install docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io

2、安装最新版本:
yum -y install docker-ce

启动docker
systemctl start docker

docker version

supervisor

开启服务:
sudo unlink /var/run/supervisor.sock
supervisord -c /etc/supervisor/supervisord.conf

客户端部分命令:
supervisorctl status appname    查看进程运行状态
supervisorctl start appname     进程名 启动进程
supervisorctl stop appname      进程名 关闭进程
supervisorctl restart appname   进程名 重启进程
supervisorctl update            重新载入配置文件
supervisorctl shutdown          关闭supervisord
supervisorctl clear appname     进程名 清空进程日志
supervisorctl                   进入到交互模式下。使用help查看所有命令。
start stop restart+all          表示启动,关闭,重启所有进程。

关闭命令:
supervisorctl stop all先关闭supervisor服务
之后再关闭supervisord服务
kill -9 pid

配置文件supervisord.conf:
[program:app]
autorestart=True      ; 程序异常退出后自动重启
autostart=True        ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True  ; 把 stderr 重定向到 stdout,默认 false
environment=PATH="/home/app_env/bin"  ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是使用指定的 virtualenv 环境
user=ubuntu           ; 用哪个用户启动
directory=/home/app/  ; 程序的启动目录
command=python server.py  ; 启动命令,与手动在命令行启动的命令是一样的
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
stdout_logfile = /data/logs/usercenter_stdout.log