docker

# Docker介绍

docker官网 docker官方镜像 阿里云docker镜像

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 手机 的 app),更重要的是容器性能开销极低

D-Bus 问题

参考

# 替换 重启
curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl
chmod +x /usr/bin/systemctl

"registry-mirrors": [
https://dockerpull.com
 https://docker.1panel.live
  https://dockerproxy.cn 
  https://docker.hpcloud.cloud
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com"
"https://9cpn8tt6.mirror.aliyuncs.com"
]

安装Docker

Ubuntu参考

centos

sudo yum -y install yum-utils device-mapper-persistent-data lvm2 gcc gcc-c++

# 可以跳过
yum -y install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.10-3.2.fc30.x86_64.rpm
yum -y install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.13-3.2.fc30.x86_64.rpm

# 配置阿里云仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce 

# 创建docker镜像源
vim /etc/docker/daemon.json
{
     "registry-mirrors": ["https://docker.m.daocloud.io","https://pee6w651.mirror.aliyuncs.com"],
    "log-driver":"json-file",
  	"log-opts": {"max-size":"500m", "max-file":"3"}
}
[参考](https://www.cnblogs.com/zinan/p/11284236.html)
[官方文档](https://docs.docker.com/config/containers/logging/configure/)

# 重启docker守护进程

systemctl daemon-reload

systemctl restart docker

ubuntu

# 更新现有的软件包列表
apt update
# 安装一些必备软件包,让 apt 通过 HTTPS 使用软件包
apt install apt-transport-https ca-certificates curl software-properties-common
# 将官方 Docker 版本库的 GPG 密钥添加到系统中
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Docker 版本库添加到APT源
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
# 用新添加的 Docker 软件包来进行升级更新
apt update
# 确保要从 Docker 版本库,而不是默认的 Ubuntu 版本库进行安装
apt-cache policy docker-ce
# 安装 Docker
apt install docker-ce

基本操作

linux服务命令一样
如: systemctl status docker …

操作命令
查看版本号信息docker -v
查看版本号信息(详细)docker version
查看详细信息docker info

镜像操作

命令操作
查看所有镜像docker images
拉取镜像docker pull 镜像标识:版本号
删除镜像docker rmi 镜像标识:版本号
删除所有的镜像docker rmi $(docker images -aq)

run 命令

  • -d : 后台运行容器,并返回容器ID
  • -i : 以交互模式运行容器,通常与 -t 同时使用
  • -t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • –name=“xxx” : 为容器指定一个名称
  • -P : 随机端口映射,容器内部端口随机映射到主机的高端口
  • -p : 指定端口映射(如 [ -p 宿主机端口:容器端口])
  • -e username=“xxx” : 设置环境变量
  • -m : 设置容器使用内存最大值
  • –volume , -v : 绑定一个卷(如 [ -v 宿主机目录:/容器目录 ])
  • –net : 配置网络模式(如 --net brigge )

容器操作

基本命令 docker start | stop | restart | rm 容器标识
参数说明

操作命令
-i运行容器
-t以交互式的方式运行容器,会进入容器的命令行内部
-d以守护式的方式运行容器,在后台运行
-p端口映射
-v目录挂载,将宿主机的目录映射到容器的目录上

查看所有容器
docker ps -a
删除容器
docker rm id/名称

exec 命令

  • -d :分离模式: 在后台运行
  • -i : 即使未连接,也保持标准输入打开
  • -t : 分配一个伪终端

文件拷贝

  • 将宿主机的文件拷贝到容器中 : docker cp 宿主机文件路径 镜像标识:容器路径
如 : docker cp /etc/docker/nginx/nginx.config nginx:/etc/nginx/
  • 将容器中的文件拷贝到宿主机上 : docker cp 镜像标识:容器文件路径 宿主机路径
如 : docker cp nginx:/etc/nginx/nginx.config /etc/docker/nginx/

查看容器映射路径

docker inspect container_name | grep Mounts -A 20
docker inspect container_id | grep Mounts -A 20

日志

docker logs 参数 镜像标识
参数

  • –since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志
    (如 --since=“2020-10-10” 只输出(包含)2020-10-10后的日志)
  • -f : 查看实时日志
  • -t : 查看日志产生的日期
  • -tail=10 : 查看最后的10条日志

网络

网络模式

  • bridge : 桥接(默认)
  • none : 不配置网络
  • host : 和宿主机共享
  • container : 容器网络连通(用的少)

创建网络

参数

  • –driver 使用的网络模式
  • –subnet 子网
  • –gateway 网关
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

本文特殊描述

  • 镜像标识
    如: nginx redis … 等等
  • 版本号
    如:1.0.0 2.2.2 … 不指定版本号为最新发布版本

远程安全登录

参考文档1
参考文档2

#!/bin/bash
# -------------------------------------------------------------
# 自动创建 Docker TLS 证书
# sed -i 's/\r$//' xxx.sh // 修复命令
# -------------------------------------------------------------

# --[BEGIN]------------------------------
# 代码,可以随便写
CODE="WRETCHANT"
# 服务器的外网IP
IP="xxx"
# CA证书的密码
PASSWORD="xxx"
# 国家
COUNTRY="CN"
# 地区
STATE="guangdong"
# 城市
CITY="guangzhou"
# 组织
ORGANIZATION="WRETCHANT.EDU"
# 组织单元
ORGANIZATIONAL_UNIT="Dev"
# 通用名称
COMMON_NAME="$IP"
# 邮件地址
EMAIL="xxx@gmail.com"

# --[END]--

# 创建存放脚本的文件夹
mkdir -p /simple/docker/ca/
cd /simple/docker/ca/ || exit

# 生成 CA 密钥
openssl genrsa -aes256 -passout "pass:$PASSWORD" -out "ca-key.pem" 4096
# 生成 CA
openssl req -new -x509 -days 365 -key "ca-key.pem" -sha256 -out "ca.pem" -passin "pass:$PASSWORD" -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL"
# 生成服务器密钥
openssl genrsa -out "server-key.pem" 4096

# 生成服务器证书
openssl req -subj "/CN=$COMMON_NAME" -sha256 -new -key "server-key.pem" -out server.csr

echo "subjectAltName = IP:$IP,IP:127.0.0.1" >>extfile.cnf
echo "extendedKeyUsage = serverAuth" >>extfile.cnf

openssl x509 -req -days 365 -sha256 -in server.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "server-cert.pem" -extfile extfile.cnf

# 生成客户端证书
rm -f extfile.cnf

openssl genrsa -out "key.pem" 4096
openssl req -subj '/CN=client' -new -key "key.pem" -out client.csr
echo extendedKeyUsage = clientAuth >>extfile.cnf
openssl x509 -req -days 365 -sha256 -in client.csr -passin "pass:$PASSWORD" -CA "ca.pem" -CAkey "ca-key.pem" -CAcreateserial -out "cert.pem" -extfile extfile.cnf

rm -vf client.csr server.csr extfile.cnf

chmod -v 0400 "ca-key.pem" "key.pem" "server-key.pem"
chmod -v 0444 "ca.pem" "server-cert.pem" "cert.pem"

# ca.pem ca-key.pem cert.pem key.pem 为客户端证书
# /lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/simple/docker/ca/ca.pem --tlscert=/simple/docker/ca/server-cert.pem --tlskey=/simple/docker/ca/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

# systemctl daemon-reload

# systemctl restart docker

# ca.pem server-cert.pem server-key.pem 为服务器证书

# ca.pem ca-key.pem cert.pem key.pem 为客户端证书

docker-compose命令

详情

安装

curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose version
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值