Docker 常用命令
创建容器并启动 docker run -e TZ="Asia/Shanghai" -d -t -i -p 3307:3306 --restart=always -v /dir/docker/mysql5.7:/etc/mysql/conf.d -v /dir/docker/mysql5.7:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 镜像ID
docker中常用的命令:
1、docker search image_name:搜查镜像
2、docker pull image_name:从镜像库中拉去镜像
3、docker run image_name:运行容器
--restart=always:容器退出后重新启动
--name:自定容器名字
--d:后台运行容器
--i:交互模式
--t:打开一个伪终端
--v:将容器中某个文件(目录)影射到主机上的某个文件(目录)
--p:将容器中的某个端口号影射到主机上的某个端口号
4、docker logs container:查看某个容器运行日志
5、docker (start | stop | restart) container:启动、停止、重启某个容器
6、docker rmi imager:删除某个镜像
7、docker rm container:删除某个容器
8、docker ps:查看运行的容器
--a:查看所有容器
9、docker exec container bash:在容器中运行shell命令
-i -t:进入容器的shell终端
10、docker build:通过Dockerfile构建一个镜像
--t:镜像名称
--rm=true:构建完成后,删除中间容器
--no-cache=false:构建过程中不使用缓存
11、docker inspect container:查看容器低层信息
12、镜像重命名 docker tag 镜像ID 仓库:标签
13、docker update --restart=always 容器ID:更改容器启动方式
--restart具体参数值详细信息:
no - 容器退出时,不重启容器;
on-failure - 只有在非0状态退出时才从新启动容器;
always - 无论退出状态是如何,都重启容器;
导入导出镜像:
导入:docker load < /test/nginx.tar.gz
导出:docker save nginx > /test/nginx.tar.gz
docker run -it -d --name web2 --link web1 -p 9092:80 nginx
--link:链接到web1这个容器
进入容器不退出
1、进入容器
docker run --name mydocker -it docker.io/centos /bin/bash
2、退出
3、启动容器
docker ps -a查询ID号
docker start ID号
4、获取Pid号
docker inspect --format "{{.State.Pid}}" 68e5c66ee5c9
5、进入容器而不退出【快捷操作:ctrl+p+q】
nsenter --target 19205 --mount --uts --ipc --net --pid 退出不停止运行容器
如果没有这个命令,需要安装util-linux包 nsenter
6、懒人写法
nsenter --target `docker inspect --format "{{.State.Pid}}" ID` --mount --uts --ipc --net --pid
docker 网络访问
docker run -P
-P 随机映射
-p hostport:containerPort
-p ip:hostPort:containerPort
-p ip::containerPort
-p hostPort:containerPort
-p hostPort:containerPort
数据卷管理
docker run -it --name node --rm -v /data centos bash 将系统根映射到容器data目录【可读写】
docker run -it --name node --rm -v /opt/:/opt/:ro centos bash 将系统opt目录映射到容器opt目录【ro表示只读】
docker
-v /data
-v /src:/dsrc
-v /src:/src:ro
容器的制作
docker commit -m "my nginx" f443e801f545 test/my-nginx:v1
Docker file 的方式构建docker镜像
FROM 他的妈妈是谁(基础镜像)
MAINTAINER 告诉被人,你创造了他(维护者信息)
RUN 你想让他干啥(把命令前面加上RUN)
ADD 相当于cp命令(COPY文件,会自动解压)
WORKDIR 相当于cd命令(当前工作目录)
VOLUME 给我一个放行李的地方(目录挂载)
EXPOSE 我要打开的门是啥(端口)
RUN 奔跑吧,兄弟!(进程要一直运行下去)
Dockerfile 案例
vim /root/docker/Dockerfile
# This is My first Dockerfile #Base images FROM centos #维护者信息 MAINTAINER test #添加文件 ADD pcre-8.37.tar.gz /usr/local/src ADD nginx-1.9.3.tar.gz /usr/local/src #RUN RUN yum -y install wget gcc gcc-c++ make openssl-devel RUN useradd -s /sbin/nologin -M www #WORKDIR WORKDIR /usr/local/src/nginx-1.9.3 #RUN RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf ENV PATH=/usr/local/nginx/sbin:$PATH EXPOSE 80 CMD ["nginx"]
运行Dockerfile
docker build -t nginx-file:v1 /opt/docker-file/nginx/
其他命令
docker run -it --rm stree --cpu 1
--rm 容器运行完即可删除
--cpu 指定分多少颗CPU
PS:docker pull nginx后,需要在nginx.conf中添加daemon off; 意为不允许nginx后台运行,因为docker不支持。
本文来自博客园,作者:MegaloBox,转载请注明原文链接:https://www.cnblogs.com/cpw6/p/9509975.html