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