博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker基础
阅读量:6546 次
发布时间:2019-06-24

本文共 5641 字,大约阅读时间需要 18 分钟。

https://www.docker.com    #官网地址

https://hub.docker.com    #docker hub地址,很多镜像都在里面

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm   #安装epel源

https://opsx.alibaba.com/mirror    #docker阿里镜像

cd /etc/yum.repos.d

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo      ##下载docker  yum文件

安装

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

yum   -y   install docker-ce   #安装docker 

启动docker

systemctl start docker

systemctl enable docker 开机自启动

查看docker版本和信息

docker --version

docker info

获取镜像和查看 导出 导入 删除镜像

docker search centos    ##搜索镜像

docker pull centos    ##下载镜像

docker images  #查看本地镜像

docker save  -o centos.tar centos;lastest   ##导出镜像

docker load --input centos.tar    ##导入镜像

 docker rmi  ID    ###删除镜像

docker rmi -f 镜像名称   ##强制删除镜像

启动容器 停止 查看  进入 删除

docker run --name -h hostname

docker run --name mydocker  -it  nginx  /bin/bash   #启动并进入容器

docker start coentos 启动容器

docker stop CONTANINER ID   ##停止容器

docker ps  -a -l

docker ps  -a -q    #显示所有容器ID

docker exec |nsenter

 docker rm -f  容器ID   #删除容器

docker attach mydocker   进入docker容器

yum  -y install util-linux  #安装nsenter

 docker inspect mydocker   #获取docker容器详情

docker inspect --format   "{

{ .State.Pid }}"    mydocker   获取容器第一个进程的PID

nsenter --target 3767 --mount -uts --ipc --net --pid    #进入容器

docker exec mydocker whoami    ##在一个正在执行的容器里直接执行命令

docker exec -it CONTAINER ID /bin/bash  #进入docker容器

docker run  --rm centos /bin/echo   "hehe"   #容器执行完毕自动退出并删除  

docker run  -d  -p 3333:80   --name  nginx-demo   nginx  #后台启动容器 指定端口

 docker run -d --rm --name nginx-test1 -v /data  nginx   #容器退出自动删除

docker  run  -d  --name  volume-demo   -v /data:/data   nginx   ##宿主机的data目录挂载到容器的/data目录

docker run -d  --name   nginx-volume-demo   --volumes-from  volume-demo  nginx   ##使用volume-demo的存储

构建镜像

手动

docker run --name mynginx -it centos /bin/bash   #进入mynginx容器

yum   -y   install   nginx

docker commit -m "My ningx" 9b78cd5667cb  mynginx:v1  ##提交

docker run -d -p 91:80 mynginx:v1 nginx  ##启动镜像

通过dockerfile自动构建

mkdir -p  /opt/dockerfile/mynginx

#cat Dockerfile

#Base Image

FROM centos

#Maintainer

MAINTAINER    LIU  xxxxxx@abc.com

#RUN

RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
RUN yum -y install nginx --enablerepo=epel
RUN echo "daemon off;" >>/etc/nginx/nginx.conf
ADD index.html /usr/share/nginx/html/index.html
EXPOSE 90
CMD  ["nginx"]

FROM:每个dockerfile的第一条指令都是FROM。指定一个已经存在的镜像作为基础镜像

MAINTAINER:指定作者及联系地址

RUN:当前镜像中运行的指令

EXPOSE:告诉docker该容器内的应用程序会使用指定端口

-------------------

docker build -t mynginx:v2 .

通过supervisor管理容器多进程

yum -y install  supervisor

ls -l /etc/supervisord.*

以构建centos镜像+ssh为例

1 #Base Image 2 FROM centos 3  4 #Maintainer 5 MAINTAINER liumengjie@koolearn.com 6  7 #RUN 8 RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm 9 RUN yum install -y wget sudo git tree net-tools supervisor  openssh-clients openssh-server openssl-devel&& yum clean all10 RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key11 RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key12 RUN ssh-keygen -A -t dsa -f /etc/ssh/ssh_host_dsa_key13 14 #set root pwd15 16 RUN echo "root:123.com"| chpasswd17 18 #For Supervisor19 ADD supervisord.conf  /etc/supervisord.conf20 ADD sshd.ini  /etc/supervisord.d/sshd.ini21 22 #Outside port23 EXPOSE 2224 25 CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]
cat sshd.ini[program:sshd]command=/usr/sbin/sshd -D       process_name=%(program_name)s autorestart=true

  

修改  nodaemon=true

docker build -t system/centos .    ##构建镜像

docker run -d --name centos-ssh-supervisor -p 2222:22 system/centos    ##启动镜像

ps -aux   #查看进程

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot         1  0.8  0.1 115572 14692 ?        Ss   13:39   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.confroot        10  0.0  0.0 112724  4216 ?        S    13:39   0:00 /usr/sbin/sshd -Droot        11  1.1  0.0 155144  5968 ?        Ss   13:40   0:00 sshd: root@pts/0root        13  0.2  0.0  15252  1916 pts/0    Ss   13:40   0:00 -bashroot        26  0.0  0.0  55140  1796 pts/0    R+   13:40   0:00 ps aux

 supervisorctl   status   ##查看supervisor管理的进程

 构建JDK+TOMCAT运行环境

mkdir  -p  /opt/dockerfile/runtime/tomcat  #新建目录

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz     #下载tomcat

cat  DOckerfile#Base ImageFROM system/centos#MaintainerMAINTAINER liumengjie@koolearn.com#RUNRUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel && yum clean allENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk#TomcatADD apache-tomcat-8.5.35.tar.gz /usr/localRUN ln -s /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat#For SupervisorADD tomcat.ini  /etc/supervisord.d/tomcat.iniENV TOMCAT_HOME /usr/local/tomcat#Outside portEXPOSE 22 8080CMD ["/usr/bin/supervisord","-c","/etc/supervisord.conf"]

  

cat tomcat.ini[program:tomcat]command=/usr/local/tomcat/bin/catalina.sh runprocess_name=%(program_name)s autorestart=true

  

docker build -t runtime/tomcat .   #构建

docker run -d --name tomcat-demo -p 8080:8080  -p 8888:22 runtime/tomcat   ##启动

http://10.1.1.1:8080/     访问测试

 使用harbor构建私有仓库

# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.0-rc1.tgz     ###下载

tar zxvf harbor-offline-installer-v1.7.0-rc1.tgz      #解压

cd harbor/

yum -y install python-pip

pip install docker-compose   #安装依赖

cat /etc/docker/daemon.json   #添加信任

{

"registry-mirrors": ["https://tdimi5q1.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.155.20.195"]
}

systemctl restart docker    #重启docker

修改 harbor.cfg

hostname = 10.155.20.195

./install.sh   #启动

浏览器访问  http://10.10.20.10/harbor

docker tag app/jenkins 1010.20.10/app/jenkins:v1    #给镜像打标签

docker push 1010.20.10/app/jenkins    #推送到harbor

转载于:https://www.cnblogs.com/liumj0305/p/9980321.html

你可能感兴趣的文章
遇见有的软件开启后画面模糊怎么解决
查看>>
用selenium实现百度贴吧自动发帖
查看>>
好系统重装助手教你怎么识别固态硬盘还是机械硬盘
查看>>
170. js中获取随机数 (记录一下)
查看>>
深入浅出爬虫之道: Python、Golang与GraphQuery的对比
查看>>
DHCP配置
查看>>
MySQL性能测试(二)——Ubuntu 14.4.02, MySQL 5.6.25, sysbench 4.8
查看>>
nginx 504 Gateway Time-out 的解决 java 工程
查看>>
我的友情链接
查看>>
《在你身边,为你设计》之一:特殊人群的设计关怀
查看>>
Inotify
查看>>
PO BO VO DTO POJO DAO 概念及其作用(附转换图)
查看>>
java实现KMP算法(参考[数据结构(C语言版)].严蔚敏)
查看>>
代码 PK 诗词
查看>>
spring的注解方式执行定时任务
查看>>
Html常用知识
查看>>
ubuntu MySQL 5.5 deb 安装
查看>>
Linux 实用快捷键整理 (持续更新)
查看>>
我的友情链接
查看>>
职业发展,选择大都市还是回老家?
查看>>