常用命令"/>
【docker系列001】docker工作常用命令
一.docker常用命令
1.linux安装docker
下载dockeretc/docker
daemon.json //docker配置文件sudo systemctl start docker //启动dockersystemctl restart docker //重启dockerdocker-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-k8sdocker 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)
二.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 .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;# }#}# abiserver {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-testserver {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-pocserver {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 /
更多推荐
【docker系列001】docker工作常用命令
发布评论