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”则表示成功了