docker & k8s 笔记

docker

安装部署

# 会直接将docker安装成服务
yum -y install docker

# 启动 & 开机自启动
systemctl start docker
systemctl enable docker

# 常用命令
docker images
docker images -a
docker ps
docker ps -a
docker stop 容器id
docker start 容器id
docker rm 容器id
docker logs 器名/容器id

Dockerfile

Dockerfile文件详解

# This my first nginx Dockerfile
# Version 1.0

# Base images(基础镜像)
FROM centos

# MAINTAINER(维护者信息)
MAINTAINER tianfeiyu 

# ENV(设置环境变量)
ENV PATH /usr/local/nginx/sbin:$PATH

# ADD(文件放在当前目录下,拷过去会自动解压)
ADD nginx-1.8.0.tar.gz /usr/local/  
ADD epel-release-latest-7.noarch.rpm /usr/local/  

# RUN(执行以下命令)
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www

# WORKDIR(相当于cd)
WORKDIR /usr/local/nginx-1.8.0 

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install

RUN echo "daemon off;" >> /etc/nginx.conf

# EXPOSE(映射端口)
EXPOSE 80

# CMD(运行以下命令)
CMD ["nginx"]

修改镜像源为国内

# 如果地址不可用了自己到阿里云注册一个

/etc/docker/daemon.json
{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker

创建镜像,创建容器

# 使用当前目录的Dockerfile;最后的.作用是:Dockerfile中ADD COPY等命令的文件位置
docker build -t jmeter-agent:test .

# 指定Dockerfile路径
docker build -f Dockerfile -t jmeter-agent:test .

# -i:交互式操作;-t:终端;/bin/bash:载入容器后运行bash,要不然执行完命令后容器会自己结束
docker run -it jmeter-agent:test /bin/bash

# -d:后台运行;-p:绑定本地端口号到容器端口;
docker run -d -p 18090:18090 jmeter-agent:test

# -P:随机绑定本机一个空闲端口到容器端口
docker run -d -P jmeter-agent:test

# 没试过
docker run -d -P jmeter-agent:test java /PATH/jar-file

docker stop <容器 ID>

docker restart <容器 ID>

# 请不要使用attach,因为退出会导致容器关闭
docker attach <容器 ID> 

# 建议用这个
docker exec -it <容器 ID> /bin/bash

# 导出容器
docker export <容器 ID> > name.tar

# 导入容器
docker import name.tar name:tag
或
cat name.tar | docker import - name:tag


原文地址:https://www.cnblogs.com/CSunShine/p/12517615.html