docker一些基础的命令

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@localhost ~]# docker search centos                      #查看查看镜像
 
[root@localhost ~]# docker pull centos                       #下载镜像
 
[root@localhost ~]# docker run -it centos:latest /bin/bash    #运行指定容器
 
[root@localhost ~]# docker ps                             #查看当前正在运行的容器
 
[root@localhost ~]# docker images                          #显示本机上的镜像
 
[root@localhost ~]# docker run -d centos:latest /bin/bash -c "while true;do echo hello world;sleep 1;done"      #在后台运行指定命令,命令运行完之后会显示一个ID
 
[root@localhost ~]# docker run -d --name centos7 --privileged=true centos:7 /usr/sbin/init            # 在centos7下有权限使用systemctl命令的启动容器的方式
 
[root@localhost ~]# docker logs ID                          #查看指定容器的日志
 
[root@localhost ~]# docker stop ID                          #停止运行指定容器
[root@localhost ~]# docker run -d -p 8800:80 nginx        #运行一个名叫nginx的容器,同时将此容器的80端口转发到宿主机的8800端口上
[root@localhost ~]# docker attach id                  #进入一个已经开启的容器
root@f5a85fb2fdb7:/# Ctrl+P+Q                        #退出容器,容器还在运行
[root@localhost ~]# docker search --filter "IS-OFFICIAL=true" mysql    #显示官方镜像
 
[root@localhost ~]# docker run -itd --name centos7_httpd_data \
--privileged=true -v /linuxfan/data1:/data1 -v /linuxfan/data2:/data2 \
-p 8080:80 centos:centos7_httpd_1 /usr/sbin/ini  
#运行centos:centos7_httpd_1镜像,以centos_httpd_data容器名称,
同时开机数据卷,宿主机/linuxfan/data1→容器/data1,开启端口转发,开启容器systemctl权限               

  

  

  

 

  如果我们执行docker run命令的时候出现这种报错

  是因为没有开启网络转发功能, 解决方法:

1
2
3
4
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
   或者
[root@localhost ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p

  

 启动docker之后再将防火墙关闭了的话,由于转发规则链改变了,会导致新的容器运行不起来.

  解决办法:重启docker

 

docker需要连接本地harbor时默认不允许通过http协议,

如docker login http://192.168.3.111:18080 报错:Error response from daemon: Get https://192.168.3.111:18080/v2/: http: server gave HTTP response to HTTPS client

解决办法:vim /lib/systemd/system/docker.service

将: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改为:ExecStart=/opt/kube/bin/dockerd --insecure-registry=192.168.3.111:18080

systemctl daemon-reload

systemctl restart docker

 

 登陆成功!

posted @   看见酵母菌  阅读(267)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示