美文网首页
docker学习笔记

docker学习笔记

作者: 木子_vajra | 来源:发表于2022-03-30 12:25 被阅读0次

    docker 启动所有镜像

    docker 服务重启了,但是里面有很多镜像,想要全部启动,一个个start太慢了。一键启动命令:

    dockerstart$(dockerps-a| awk'{ print $1}'| tail-n+2)

    查看当前tomcat容器的挂载信息

    docker inspect tomcat

    拉取最新镜像

    docker pull tomcat

    然后停止当前tomcat容器

    docker stop tomcat

    运行最新版本tomcat

    docker run -it -v /docker/tomcat:/usr/local/tomcat/webapps -p 8888:8888 --privileged=true --name=tomcat10 -d tomcat

    运行成功即可

    访问一个不存在的链接,即可看到tomcat版本

    查看本地镜像列表

    docker images | grep tomcat

    # 查看所有镜像

    docker images

    # 正在运行容器

    docker ps

    # 查看docker容器

    docker ps -a

    # 启动tomcat:7镜像

    docker run -p 8080:8080 tomcat:7

    # 以后台守护进程的方式启动

    docker run -d tomcat:7

    # 停止一个容器

    docker stop b840db1d182b

    # 进入一个容器

    docker attach d48b21a7e439

    # 进入正在运行容器并以命令行交互

    docker exec -it e9410ee182bd /bin/sh

    # 以交互的方式运行

    docker run -i -t -p 8081:8080 tomcat:7 /bin/bash

    #看下本机正在运⾏的容器

    sudo docker container ls 

    //1、通过镜像产生一个容器

    docker run -p port1:port2 containerName:tag

    //2、启动一个已有的容器

    docker start containerID/containerName

    //3、停止一个容器

    docker stop containerID/containerName

    //4、重启一个容器

    docker restart containerID/containerName

    //5、与一个已经启动的容器进行交互式操作

    语法:docker exec -it containnerID/containerName /bin/bash

    例子:docker exec -it cafe1bfc653f bin/bash

    //6、复制文件到容器中

    语法:docker cp src_path containerID:dest_path

    例子:docker cp /home/a.txt cecb37db8134:/usr/local/tomcat/

    #停止docker

    systemctl stop docker

    #docker0

    ip link set dev docker0 down

    #删除docker0网桥

    brctl delbr docker0

    #增加docker0 网桥

    brctl addbr docker0

    #增加网卡

    ip addr add 172.16.10.1/24 dev docker0

    #启用网卡

    ip link set dev docker0 up

    #重启docker服务

    systemctl restart docker

    # Delete all containers 删除容器

    docker rm $(docker ps -a -q)   删除镜像

    # Delete all images

    docker rmi $(docker images -q)

    一次性删除所有容器,包括正在运行的容器

     docker rm -f `docker ps -a -q`

    /usr/bin/docker-current: Error response from daemon

    1)不需要关闭防火墙

    2)重启docker服务:systemctl restart docker

    3)docker服务重启后,所有容器都会关闭,应立即批量启动全部容器:

    docker start `docker ps -a -q`

       启动的容器也会包括上面报错的容器,重启docker后,该容器就能正常启动和使用了!

    创建docker容器的时候,做了端口映射到宿主机, 防火墙已关闭, 但是外部始终无法访问宿主机端口?

    这种情况基本就是因为宿主机没有开启ip转发功能,从而导致外部网络访问宿主机对应端口是没能转发到 Docker Container 所对应的端口上。

    解决办法:

    Linux 发行版默认情况下是不开启 ip 转发功能的。这是一个好的做法,因为大多数人是用不到 ip 转发的,但是如果架设一个 Linux 路由或者VPN服务我们就需要开启该服务了。

    在 Linux 中开启 ip 转发的内核参数为:net.ipv4.ip_forward,查看是否开启 ip转发:

    # cat /proc/sys/net/ipv4/ip_forward           // 0:未开启,1:已开启

    打开ip转发功能, 下面两种方法都是临时打开ip转发功能!

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    # sysctl -w net.ipv4.ip_forward=1

    永久生效的ip转发

    # vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

    # sysctl -p /etc/sysctl.conf      // 立即生效

    Linux 系统中也可以通过重启网卡来立即生效 (修改sysctl.conf文件后的生效)

    # service network restart                  //CentOS 6

    # systemctl restart network              //CentOS 7

    通过docker-proxy配置来验证,在开启docker-proxy时,新增的监听如下:

    ps -ef|grep docker-proxy

    相关文章

      网友评论

          本文标题:docker学习笔记

          本文链接:https://www.haomeiwen.com/subject/clhbjrtx.html