Docker 命令

好久没有更新了,生锈了

1. 基本操作

启动一次性容器:docker run centos echo 'hello world'
启动交互式容器:docker run -it centos /bin/bash,exit 退出并停止容器
启动守护式容器:docker run -it centos /bin/bash,Ctrl+P/Ctrl+Q 退出并后台运行
启动守护式容器:docker run --name web-nginx -d centos /bin/bsh -c ''
停止守护式容器:docker stop web-nginx,docker kill web-nginx
进入守护式容器:docker attach web-nginx
切换容器:docker attach 容器名
查看正在运行的容器的信息:docker ps
查看所有的容器:docker ps - a
查看容器详情:docker inspect  id/name  
给容器起名:docker run --name = web-nginx -i -t centos /bin/bash
重新启动已停止的容器:docker start -i web-nginx
删除已经停止的容器:docker rm web-nginx
查看容器运行的情况:docker logs -tf --tail 10 web-nginx
查看容器的进程:docker -top web-nginx
在容器中启动新的进程:docker exec -i -t web-nginx /bin/bash

2. 容器端口的映射

设置容器端口映射:docker -P/-p 
只指定容器的端口:docker run -p 80 --name web-nginx -i -t centos /bin/bash 宿主机的端口是随机映射的
指定宿主机和容器的端口:docker run -p 8080:80 --name web-nginx -i -t centos /bin/bash
指定容器IP和端口:docker run -p 0.0.0.0:80 --name web-nginx -i -t centos /bin/bash
指定IP 宿主机 容器端口:docker run -p 0.0.0.0:8080:80 --name web-nginx -i -t centos /bin/bash
安装nginx、vim,创建目录和HTML,whereis nginx查看nginx安装在哪里,配置并运行nginx
查看容器端口映射:docker port web-nginx 
命令访问http:curl http://127.0.0.1:49167
容器IP地址:docker inspect  id/name --> NetworkSettings --> IPAddress
启动容器的服务:docker exec web-nginx nginx

3. 镜像与仓库

查看docker存储位置和驱动:docker info
docker存储的位置:/var/lib/docker
镜像存储位置:/var/lib/docker/aufs/mnt
列出所有的镜像:docker images
REPOSITORY:镜像所属的仓库名(镜像的集合),TAG:标签名,IMAGE ID:被截断后的id
REGISTRY:docker镜像的存储服务
查看某个仓库的镜像:docker images centos
查看容器或镜像的详情信息:docker inspect ubuntu:14.04(仓库名+TAG)/或者镜像的id
删除镜像:docker rmi ubuntu:14.04(仓库名+TAG)/或者镜像的id

4. 获取和推送镜像

docker仓库:https://hub.docker.com/explore/
命令查找:docker search -s 3 ubuntu
拉取安装镜像:docker pull ubuntu14.0.4
使用国内镜像仓库下载:
	a. 修改:/etc/default/docker(docker的启动配置文件)
	b. 添加:DOCKER_OPTS="--registry-mirror=在https://www.daocloud.io中生成连接"
通过容器构建:docker commit -a“作者”-m“备注”commit_test  仓库名/镜像名
*通过Dockerfile文件构建:docker build
	a. 创建docker的目录和文件:mkdir -p /dockerfile/df-test,vim dockerfile
将下面的内容填写到dockerfile中
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112212230647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ExMDEzMzMxUQ==,size_16,color_FFFFFF,t_70)
c. docker build -t='/dockerfile/df-test'	

5. 客户端和守护进程

docker的客户端与守护进程是通过socket连接的
有三种方式:unix(默认的连接方式)、tcp、fd
启动-停止-重启 守护进程:service docker stop/start/restart
客户端远程访问服务端:
	a. 修改服务端:/etc/default/docker(docker的启动配置文件),加入-H选项使用tcp协议
	b. 客户端:export DOCKER_HOST=“tcp://10:211:55.5:2375”
	c. 执行docker info 就会默认连接到远程的服务端
dockerfile构建过程:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112212415953.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ExMDEzMzMxUQ==,size_16,color_FFFFFF,t_70)

6. docker网络

ifconfig docker0 192.168.1.110 netmask 255.255.255.0
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112212449810.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ExMDEzMzMxUQ==,size_16,color_FFFFFF,t_70)

7. 常用命令

创建并启动:docker run --name hadoop1 -itv /software/docker/hadoop1/:/tmp my-centos /bin/bash
启动:docker exec -it hadoop1 /bin/bash
停止:docker stop  ID/NAME  ID/NAME  ID/NAME
删除容器:docker rm  ID/NAME
获取指定版本镜像:docker pull centos:centos6
启动容器时,自动读取自定义的环境变量:/root/.bashrc
修改时间:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

8. Dockerfile

1-FORM:基于什么镜像,FROM <image>或FROM <image>:<tag>
2-MAINTAINER:维护者信息,MAINTAINER <name>
3-RUN:在基础镜像上执行,搭建环境,RUN <command> 或 RUN ["executable", "param1", "param2"]
4-CMD:启动容器时执行的命令,只能有一条
	• CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;
	• CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
	• CMD ["param1","param2"] 提供给 ENTRYPOINT 的默认参数;
5-EXPOSE:容器暴露的端口号,EXPOSE <port> [<port>...]
6-ENV:指定环境变量,会被后续的RUN指令使用,并在容器运行时保持
7-ADD:就是复制文件到容器中,ADD <src> <dest>,<src>:可以是一个本地文件,可以是URL,tar文件会自动解压
8-COPY:单纯的复制本地文件到容器中,COPY <src> <dest>
9-ENTRYPOINT:容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖,只能有一条命令
	• ENTRYPOINT ["executable", "param1", "param2"]
	• ENTRYPOINT command param1 param2(shell中执行)。
10-VOLUME:创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等,VOLUME ["/data"]
11-USER:容器运行时的用户名,USER daemon
12-WORKDIR:切换目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录
13-ONBUILD:配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令,ONBUILD [INSTRUCTION]
构建镜像:docker build -t my-centos .

docker设置静态ip(只能设置一个静态ip)
在容器外创建网卡:docker network create --subnet=192.19.2.1/30 myIp
启动时加入此选项即可:--net myIp --ip 192.19.2.1

映射文件夹
-v /software/docker/hadoop1/:/usr/local

删除/停止 所有
停止所有的容器:docker stop $(docker ps -a -q)
删除所有未运行的容器:docker rm $(docker ps -a -q)
删除所有未打tag的镜像:docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
删除所有镜像:docker rmi $(docker images -q)
删除单个容器:docker  rm  id
删除单个镜像:docker  rmi  id

docker network
docker network create:创建
docker network connect
docker network ls:列出
docker network rm:删除
docker network disconnect
docker network inspect

使用docker作为虚拟机,之后的一些配置查看环境变量是否正确
设置root密码:passwd
关闭防火墙:service iptables status
开启ssh服务:service sshd start
配置ssh免密登录:ssh-keygen  -->  ssh-copy-id hadoop1 2 3等等
写一个服务器初始化文件:docker-server-init.sh,然后将这个文件在/root/.bashrc文件中启动

查看指定docker的ip地址:docker inspect hadoop1 | grep IPAddress
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值