[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 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命令的时候出现这种报错
是因为没有开启网络转发功能, 解决方法:
[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
登陆成功!