docker基础

目录

容器运行常见报错以及解决办法
容器运行参数解析
Netstat命令
dhclient命令

docker命令补充

容器运行常见报错以及解决办法

1.出现Error response from daemon: Conflict,The container name “***” is already in use

解决方法:

(1)给容器换一个名字, 比如说 docker run -it --name=mycentos2 centos:7 /bin/bash, 可以解决问题.

(2)将原来的容器删除
查询当前容器:docker container ls -all

删除当前容器(删除前先停止运行docker stop ewrfdgfdfs(containerid)):
再docker container rm mycentos(container ID也可)
如果想要再次使用,使用则docker restart 镜像名

(查看容器的一系列命令):

docker ps 不带参数

显示全部容器,和总文件大小 docker ps -a -s

显示最近创建的容器 docker ps -l docker ps -a -l

显示最近创建的 2 个容器 docker ps -n 2

显示完整的镜像ID docker ps --no-trunc

只显示镜像ID docker ps -q


2. run容器时,端口被占用

解决方法:

先netstat -tnalp 查看运行程序及端口(点击这跳至netstat解析)
然后kill 进程号
如kill 2354

容器运行参数解析

使用docker最简单的方式就是docker run了。想要运行什么服务,就run相应的镜像。

以下的内容基于Linux环境

docker run也支持简单的自定义参数,比如这个镜像以什么方式运行,要不要分配网络端口、存储空间之类的。如果要用好docker至少要熟练最简单的参数设置方法。

语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

常用OPTIONS说明:

-d: 后台运行容器,并返回容器ID;
不加这一个默认直接进入容器,之后如果退出则会连着容器一起挂起(暂停运行)。

-i: 以交互模式运行容器,通常与 -t 同时使用;

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
同时使用it之后,你就可以进入到这个容器里面,就像在一台新的Linux主机中了。

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
非常常用,从容器外访问容器内服务的主要方式。

–name=“nginx-lb”: 为容器指定一个名称;

-m :设置容器使用内存最大值;
-e username=“ritchie”: 设置环境变量;

–volume , -v: 绑定一个卷
格式为主机目录:容器目录,这条命令也是非常有用的,如果不绑定目录,那么在删除容器的时候,里面的所有数据也一起删除了。但如果使用了挂载卷的话,直接存在宿主机对应文件夹中,下次开启容器还能直接使用。通常用于存一些配置文件、数据什么的。

实例1.
docker run --name mynginx -p 8080:80 -v /data:/data -d nginx:latest、

说明1:
docker run:启动一个容器。
–name mynginx:将容器命名为mynginx。
-p 8080:80:将容器的 80 端口映射到主机的 8080 端口
-v /data:/data:将主机的目录 /data 映射到容器的 /data
-d:以后台模式启动。
nginx:latest:镜像来源:nginx:latest

实例2.
docker run -it nginx:latest /bin/bash
root@b8573233d675:/#

说明2:
docker run:启动一个容器。
-it:以交互模式启动(进入容器中)
nginx:latest:镜像来源:nginx:latest
/bin/bash:进入容器后要执行的命令,这里是打开终端。
root@b8573233d675:/# :已经进入了容器里面的终端,用户名变化。
学会了docker run命令,就足以运行大部分docker服务。

实例3:
使用wordPres镜像创建一个容器

说明3.
docker run --name wordpress
-e WORDPRESS_DB_HOST=47.97.69.160:3306
-e WORDPRESS_DB_USER=root
-e WORDPRESS_DB_PASSWORD=a1b2c3
-e WORDPRESS_DB_NAME=wordpress
-p 8080:80
-v /root/wordpress/config:/var/www/html
-d wordpress\

Netstat命令

Netstat(network statistics)是在内核中访问网络连接状态及其相关信息的命令行程序,可以显示路由表、实际的网络连接和网络接口设备的状态信息,以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络服务运行状况

参数解析:

netstat -tanlp 列出tcp以及进程名进程号 禁用反向域名解析,加快查询速度

默认情况下 netstat 会通过反向域名解析查找每个 IP 地址对应的主机名,会降低查找速度。

  1. netstat -nat n选项可以禁用此行为,并且用户 ID 和端口号也优先使用数字显示

  2. netstat -ntl 只列出监听中的连接 -l选项可以只列出正在监听的连接(不能和 a 选项同时使用)

  3. netstat -ntlp 获取进程名、进程号以及用户 ID
    -p 选项可以查看进程信息(此时 netstat 应尽量运行在 root 权限之下,否则不能得到运行在 root 权限下的进程名)

  4. netstat -r 显示路由信息 使用 -r 选项打印内核路由信息,与 route 命令输出一样。

​ 5 . netstat -i 网络接口信息 -i 选项可以输出网络接口设备的统计信息,结合上 -e 选项,等于 ifconfig 命令的输出

  1. netstat -s 获取网络协议的统计信息 -s选项可以输出针对不同网络协议的统计信息,包括 Ip、Icmp、Tcp 和 Udp 等。

dhclient eth命令

dhclient命令功能:用于动态主机配置协议

命令:

dhclient eth0获取IP地址,
然后运行ifconfig eth0

1.—在指定网络接口上发出DHCP请求 dhclient eth0


docker命令补充

docker ps #容器的查看
docker stop 2946f38aa078 #通过容器的id号来停止一个运行的容器
docker ps -a #查看所有的历史容器
docker start 2946f38aa078 #重启启动之前被关闭的容器服务
docker rm 2946f38aa078 #删除一个容器,前提是stop此容器
docker exec -it 2946f38aa078 #/bin/bash #进入容器

docker search pikachu 搜索pikachu相关镜像,再从中选择星星最多的

赞赞呗谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值