【docker】docker 总结
一.docker常用命令
1.linux安装docker
下载docker
etc/docker
daemon.json //docker配置文件
sudo systemctl start docker //启动docker
systemctl restart docker //重启docker
docker-machine ip default //查看docker机器ip
2.docker小知识
docker是go语言开发的,使用docker info可以查看具体信息
docker的核心思想是隔离
docker version //查看版本信息
docker info //查看具体信息
docker status //docker状态
3.docker 镜像命令
docker images //查看镜像
docker search rabbitmq //搜素镜像
docker pull rabbitmq //下载最新镜像
docker pull rabbitmq:3.8.11 //下载指定版本镜像
//删除镜像
docker rmi -f imgageID
docker rmi -f imgageID1 imgageID2 imgageID3
docker rmi -f $(docker images -aq)
docker 镜像是基于联合文件系统
联合文件系统
分层
轻量级
高性能
4.容器命令
docker run -it -p 9876:9876 09bbc30a03b6 //通过镜像id启动容器
docker run -d -p 9876:9876 h2oai/h2o-open-source-k8s //
docker run --name nginx -p 80:80 -d nginx //通过镜像名字启动容器
docker run --name h2o-k8s -p 54321:54321 -d qyj1992/h2o-k8s
docker run -d -p 80:80 nginx //通过镜像名字启动容器
docker run 参数 image //运行容器
docker ps 参数 //查询容器列表
docker ps -a //查看生成的容器 启动+不启动
//退出容器
exit //停止容器
ctrl+d //停止容器
ctrl+p+q //不会停止容器
docker rm 参数 容器id //删除容器
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止容器
docker kill 容器id //强制停止容器
docker exec -it 0b342d940801 bash //进入容器
docker exec -it 8cf03a040bcc /bin/bash //windows进入docker容器
docker attach 容器id //进入容器
docker logs 630f2a370ca9 //查看docker日志
docker top 容器id //查看top信息
docker inspect 容器id //查看元数据信息 比如软连接信息
docker attach 容器id //进入容器
docker cp /home 容器id:/home //从宿主机拷贝到容器
docker cp 容器name:/home /home //从容器拷贝到宿主机
docker cp /home/fastai/zzy/test0/result_data2_week_train.csv aigateway:/home/fastai/zzy/test0 /将宿主机文件copy到容器
docker ps --format "{{.Names}}" //查看容器名称
5.容器数据卷
查看挂载列表信息
docker volume ls
查看挂载信息
docker volume inspect [volume]
挂载操作
docker run -it -v /home/muse/test:/home centos /bin/bash
可以使用docker inspect 容器id //查看挂载信息
匿名挂载
docker run -d -P --name nginx1 -v :/ect/nginx nginx
具名挂载
docker run -d -P --name nginx2 -v nginx2:/etc/nginx nginx
容器之间的数据卷是互相同步复制备份,而不是共享 说白了就是修改都起作用 删除只是删除自己的
6.DockerFile构建镜像
创建文件DockerFile
构建镜像
docker build -f /home/muse/dockerfiles/dockerfile01 -t muse/centos:1.0 .
启动镜像
docker run -it eb78333356a6 /bin/bash
推送镜像到远程仓库
docker pull centos:1.0 qyj1992/centos:1.0
7.docker和vm的区别
- vm虚拟机是VM OS系统+虚拟机监视器
- docker 是docker engine docker引擎
- docker是运行在宿主机内核上的,没有自己的内核,小巧
- vm是操作系统的虚拟化,docker是内核级别的虚拟化
8.操作全部容器
docker中 所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
9.查看日志
#查看末尾3000行
docker logs --tail 3000 e0864b9d33ef
#滚动最后100行
docker logs -f --tail 100 e0864b9d33ef
#最后3000带查询
docker logs --tail 3000 e0864b9d33ef | grep 'sql='
docker logs --tail 10000 e0864b9d33ef | grep '节点名称=输出'
docker logs --tail 10000 e0864b9d33ef | grep 'Exception'
#输出到文件
docker logs --tail 1000 e0864b9d33ef >> logs_error.txt
10.查看docker信息
二.CentOS安装docker
1、CentOS 系统的内核版本
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
uname -r
2、卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker docker-common docker-selinux docker-engine
3、安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、可以查看版本
所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
6、安装docker
sudo yum install docker-ce-17.12.0.ce
7、启动并加入开机启动
systemctl start docker
systemctl enable docker
8、验证安装
是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
docker rm id/name //删除某个容器
docker rmi id/name //删除某个镜像
docker run -d -p 2222:22 --name test soar/centos:7.1 //以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
9.dockerfile文件
Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。docker build 命令用于使用 Dockerfile 创建镜像。
docker build -f /path/to/a/Dockerfile
Docker以从上到下的顺序运行Dockerfile的指令
-
FROM:指定基础镜像,必须为第一个命令
-
MAINTAINER: 维护者信息
-
RUN:构建镜像时执行的命令
-
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
-
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
-
CMD:构建容器后调用,也就是在容器启动时才进行调用。
-
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
-
LABEL:用于为镜像添加元数据
-
ENV:设置环境变量
-
EXPOSE:指定于外界交互的端口
-
VOLUME:用于指定持久化目录
-
WORKDIR:工作目录,类似于cd命令
-
USER:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
-
ARG:用于指定传递给构建运行时的变量
-
ONBUILD:用于设置镜像触发器
# 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.rpmRUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean allRUN useradd -s /sbin/nologin -M www#WORKDIR 相当于cdWORKDIR /usr/local/nginx-1.8.0 RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make installRUN echo "daemon off;" >> /etc/nginx.conf#EXPOSE 映射端口EXPOSE 80#CMD 运行以下命令CMD ["nginx"]
10.删除none镜像
删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。
docker imagesdocker rmi $(docker images | grep "none" | awk '{print $3}')直接删除带none的镜像,直接报错了。提示先停止容器。docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像
三.docker安装nginx
1、下载nginx镜像
docker pull nginx
2、启动nginx容器
docker run --name nginx -p 3000:3000 -p 3002:3002 -p 8080:8080 -v /root/java/docker/nginx.conf:/etc/nginx/nginx.conf -v /root/java/web:/home -d nginx:stable
3、nginx配置
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#server {
# listen 8080;
# #server_name localhost;
# location / {
# proxy_pass http://10.201.1.98:3002;
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root html;
# }
#}
# abi
server {
listen 3000;
#server_name localhost;
location / {
root /home/abi/build;
index index.html index.htm;
}
location /abi/ {
proxy_pass http://10.201.1.84:8100/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# fast-bi-test
server {
listen 3002;
#server_name localhost;
location / {
root /home/fast-bi/test/build;
index index.html index.htm;
}
location /api/ {
proxy_pass http://127.0.0.1:8899/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# fast-bi-poc
server {
listen 8080;
#server_name localhost;
location / {
root /home/fast-bi/poc/build;
index index.html index.htm;
}
location /api/ {
proxy_pass http://127.0.0.1:8897/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
4、示例
5.nginx目录
/usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/
6.nginx命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //启动
ps -ef|grep nginx
kill -9 nginx //停止
在目录sbin下
./nginx -s reload /
相关文章
- 1. 容器及Docker基础知识
- [docker]docker压力测试
- 大数据平台Docker应用之路
- 部署Docker前必须问自己的四个问题
- deepin 20.8安装docker
- 关于Docker目录挂载的总结
- docker命令总结
- 城会玩,Selenium+Docker成功解决这一大难题...
- 【Docker】命令 restart
- 部署 Helm - 每天5分钟玩转 Docker 容器技术(162)
- Docker学习总结之docker创建私有仓库(private Repositories)
- Docker Daemon 连接方式详解
- Docker daemon error cannot allocate memory
- DOCKER,需要进入生产实践
- Docker 安装 Logstash