Docker 常用命令
搜索镜像
docker search tomcat
拉取镜像
docker pull tomcat:tags(不加tags时默认为latest)
查看镜像
docker images
删除镜像
docker rmi 镜像名称/id
docker rmi -f 镜像名称/id
强制删除
根据镜像启动容器
docker run -p 80:80 --name 容器名称 -d 镜像名称或者镜像id
-d:表示后台运行
–name:指定运行后容器的名字,之后可以通过名字来操作容器
-p:指定端口映射,格式为:hostPort:containerPort
-v参数的作用是挂载目录,例如下面是将宿主机的/test目录挂载到容器的/soft目录
docker run -it -v /test:/soft centos /bin/bash
(bin/bash表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器就会退出。
这个就表示启动容器后启动bash。)
链接两个容器
–link的作用
docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。
--link的格式:
--link <name or id>:alias
其中,name和id是源容器的name或者id,alias是源容器在link下的别名。
示例
docker run -p 8080:8080 --name newbee --link mysql:db -v /etc/localtime:/etc/localtime -v /mydata/app/mall-tiny-docker/logs:/var/logs -d newbee:0.0.1
启动已经存在的容器
docker start 容器id
查看运行中的容器和查看所有容器
docker ps 和 docker ps -a
停止运行中的容器
docker stop 容器id或容器名称
docker kill $ContainerName(或者$ContainerId)
强制停止
删除容器(容器需要为停止状态)
docker rm 容器id
查看容器日志
docker logs 容器id
根据mysql8镜像启动容器
docker run --name mysql-c -v /my/custom:/etc/mysql/conf.d(以主机/my/custom:/etc/mysql/conf.d路径下的配置文件启动,此项可忽略) -e MYSQL_ROOT_PASSWORD=123456 (指定root用户密码,不可忽略) -d mysql:8.0
根据mysql5镜像启动容器
docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
进入Docker容器内部的bash
docker exec -it $ContainerName /bin/bash
先查询出容器的pid
docker inspect --format "{
{.State.Pid}}" 容器名称或id
根据容器的pid进入容器
nsenter --target 容器的pid --mount --uts --ipc --net --pid
配置阿里云加速
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
左边菜单栏镜像加速器有各版本的配置教程
Dockerfile
Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖以及自定义配置等
FROM
指定所需依赖的基础镜像,格式:
FROM <image>:<tag>
MAINTAINER
指定维护者的名字,格式:
MAINTAINER <name>
RUN
在容器构建过程中执行的命令,我们可以用该命令自定义容器的行为,比如安装一些软件,创建一些文件等,格式:
RUN <command>
RUN ["executable","param1","param2"...]
示例:
#在容器构建过程中需要在/目录