docker 入门基础


yum update
curl -sSL https://get.docker.com/ | sh
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 配置docker 镜像
yum list docker-ce --showduplicates | sort -r
镜像加速
cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
chmod 777 /etc/systemd/system/docker.service
vim /etc/systemd/system/docker.service
/usr/bin/dockerd --registry-mirror=https://kfp63jaj.mirror.aliyuncs.com

安装 docker-compose
rpm -ivh docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
docker-compose --version
#编写执行yaml
version: '2' #版本号

services: #定义所有得service 信息
db:#服务名称
image: mysql:5.7#镜像名
container_name: mysql-db#容器名称
restart: always#自动重启操作
environment:
MYSQL_ROOT_PASSWORD: somewordpress #变量配置
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

执行操作命令
docker-compose up -d
编写 Dockerfile
###################################
FROM hub.c.163.com/public/centos:6.7-tools
MAINTAINER mengqiao@163.com

ADD ./apache-tomcat-10.0.22.tar.gz /root

ADD ./jdk11-linux.tar.gz /root


ENV JAVA_HOME /root/jdk-11.0.15

ENV PATH $JAVA_HOME/bin:$PATH

EXPOSE 8080

ENTRYPOINT /root/apache-tomcat-10.0.22/bin/startup.sh && tailf /root/apache-tomcat-10.0.22/logs/catalina.out

#Dockerfile 执行
docker build -t tomcat:v10.0 . #tomcat:v10.0 为镜像名称
docker run --name tomcat -p 8080:8080 -d tomcat:v10.0 运行tomcat 镜像

#官方仓库构建
docker pull hub.c.163.com/public/centos:6.7-tools 下载centos镜像
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always registry #运行镜像仓库
vim /etc/docker/key.json emon.json #客户端和服务端编写运行访问白名单
{
"insecure-registries":["10.16.1.16:5000"]
}
docker tag tomcat:v10.0 10.16.1.16:5000/tomcat:v10.0 #镜像做标签得修改

docker push 10.16.1.16:5000/tomcat:v10.0 镜像上传到镜像仓库
下载镜像
docker pull 10.16.1.16:5000/tomcat:v10.0

Harbor仓库创建
下载harbor 路径
https://github.com/goharbor/harbor/releases
tar xvf harbor-offline-installer-v2.5.3.tgz
mv harbor /usr/local/
证书创建
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
ll
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
mkdir /data/cert
mv server.* /data/cert/
chmod -R 777 /data/cert/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
certificate: /data/cert/server.crt #证书配置位置
private_key: /data/cert/server.key #密钥位置
hostname: hub.testsiheng.com #主机配置

vim /etc/docker/daemon.json #允许访问配置
{
"insecure-registries":["hub.testsiheng.com:443"]
}

systemctl restart docker

cd /usr/local/harbor
./install.sh
docker push hub.siheng.com/mengqiao_test/tomcat:v10.0
上传镜像到harbor仓库
docker tag tomcat:v10.0 hub.testsiheng.com/mengqiao_test/tomcat:v10.0 #修改上传标签
docker push hub.testsiheng.com/mengqiao_test/tomcat:v10.0 上传镜像
docker pull hub.testsiheng.com/mengqiao_test/tomcat:v10.0 下载镜像
docker run --name tomcat -p 80:8080 -d 1dd645f20955 镜像运行

https://www.cnblogs.com/xiaoqianglwq/p/11242463.html

docker 网络隔离
docker network ls 查看当前可用网络类型
docker network create -d 类型 网络空间名称
类型分为
overlay network 覆盖行网络 不同得主机容器之间进行通信
bridge network 网桥

不同网络空间进行隔离
docker network create -d bridge --subnet "172.26.0.0/16" --gateway "172.26.0.1" my-bridge-network #设置docker 网络网关以及网段
docker run -d --network=my-bridge-network --name test hub.c.163.com/public/centos:6.7-tools 运行镜像并配置隔离网段

docker run -d --name test2 hub.c.163.com/public/centos:6.7-tools 运行不配置隔离网段得docker

桥接器进行主机间通信
vim /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
#UUID=f939739f-0943-4c04-abf9-f7cd9eff04d2
DEVICE=ens192
ONBOOT=yes

vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.16.1.15
PREFIX=24
GATEWAY=10.16.1.254
DNS1=10.10.24.1
DNS2=192.168.1.3

yum install -y git
git clone https://github.com/jpetazzo/pipework
cp pipework/pipework /usr/local/bin
docker run -itd --net=none --name=ff cento-6-x86 bash
pipework br0 f1 10.16.1.17/24


容器管理卷
容器自管理卷
docker-managed Volume
vim Dockerfile
FROM centos:6.8 #镜像
RUN touch /tmp/1.txt #创建命令
RUN mkdir /data/
VOLUME /data #挂在管理卷
CMD tail -f /tmp/1.txt #镜像运行执行引导命令
##########
缺点随机生成 无法使重新运行得容器挂载同一目录
################

容器绑定卷
okcer run --name test11 -v /data/:/data/ -d test:v1.0 命令绑定

对内存做限制 命令
docker run --name stress -it --rm -m 256m lorel/docker-stress-ng:latest stress -vm 8 #vm 代表几个进程去执行

docker run --name stress -it --rm --cpus 2 lorel/docker-stress-ng:latest stress --cpu 8 #cpu 使用cpu限制命令
docker run --name stress -it --rm --cpuset-cpus 0 lorel/docker-stress-ng:latest stress --cpu 8 #容器使用cpu群集得第几个cpu

posted @ 2022-07-25 14:29  繁星下的晴空  阅读(44)  评论(0)    收藏  举报