Docker安装,Idea远程连接管理Docker

561 阅读3分钟

1. Docker安装以及常用命令

  • 在线安装docker:yum install docker
  • 查看docker安装包:yum list installed | grep docker
  • 查看docker状态:systemctl status docker
  • 启动docker: systemctl start docker
  • 关闭docker: systemctl stop docker
  • 重启docker: systemctl restart docker
  • 查看docker的概要信息: docker info
  • 查看docker帮助文档: docker -help
  • 启动报错,进入/etc/sysconfig/下,编辑docker,将安全策略selinux-enabled设置为false cd /etc/sysconfig/ ; vi docker; selinux-enabled=false
  • 查看宿主机所有docker镜像docker images
  • 搜索注册中心指定镜像 docker search 镜像名称
  • 鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:hub-mirror.c.163.com。 新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。 请在该配置文件中加入(没有该文件的话,请先建一个):(加速地址:docker.mirrors.ustc.edu.cn) 新版本的docker如果启动失败,把daemon.json改为daemon.conf { "registry-mirrors": ["f1361db2.m.daocloud.io"], "live-restore": true }

然后重启docker : systemctl restart docker

  • 拉取镜像: docker pull 镜像名称,拉取tomcat镜像:docker pull tomcat
  • 删除镜像:docker rmi 镜像名称/镜像ID
  • 删除所有镜像 docker rmi docker images -q 注意是反引号,esc下面那个按键
  • 查看容器 docker ps;查看启动过的容器 docker ps -a;查看最后一次启动的容器docker ps -l;查看退出的容器docker ps -f status=exited
  • 创建容器
    • 创建交互式容器,例如:docker run -it --name=mycentos centos /bin/bash;用centos镜像创建一个名为mycentos的镜像,命令解析器为/bin/bash,运行并进入容器
    • 创建守护容器:docker run -di --name=mycentos1 centos; *进入容器的命令docker exec -it container_name(container_id) /bin/bash;如:docker exec -it mycentos1 /bin/bash
    • 退出容器:exit
    • 启动容器:docker start $container_name/id
    • 关闭容器:docker stop $container_name/id
    • 查看容器IP:docker inspect 'container_name'|grep IPAddress
    • 容器中无法使用常用命令:原因是docker镜像都是以最轻量级安装方式,解决办法 yum install net-tools
    • 创建数据卷 docker volume create --name my-volume (在/var/lib/docker/volumes/ 下生成名为my-volume的文件夹)
    • --restart=always随docker启动
    • 解决容器时间与宿主机同步问题:如docker cp /etc/localtime mysql:/etc/
    • 进入springboot项目容器:docker exec -it container_name sh
    • 创建mysql数据库,不区分表名大小写,在命令最后增加 --lower_case_table_names=1

2. idea远程连接docker服务器

vi /etc/sysconfig/docker加入下面代码 OPTIONS='--selinux-enabled -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 重启docker systemctl daemon-reload systemctl restart docker 查看端口号netstat -nplt |grep 2375

最新版的dcoker1.18以上的,可能无法连接,那么此时需要编辑service文件 vi /usr/lib/systemd/system/docker.service 在ExecStart后面加上-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 最后的结果是 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:12375 -H unix:///var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock

退出编辑模式,执行命令 systemctl daemon-reload systemctl restart docker 尝试重新连接

3. linux下解决docker端口映射到宿主机后外网无法访问的问题

解决办法: vi /etc/sysctl.conf 或者 vi /usr/lib/sysctl.d/00-system.conf 添加如下代码: net.ipv4.ip_forward=1

重启network服务 systemctl restart network

查看是否修改成功 sysctl net.ipv4.ip_forward

如果返回为“net.ipv4.ip_forward = 1”则表示成功了