docker run --detach  --publish 9999:80  --name nginxSer --restart unless-stopped --privileged=true --network host -v /root/nginx/html:/usr/share/nginx/html \
    -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v /root/nginx/logs:/var/log/nginx \
    nginx

run命令参数

-d, --detach: 指定容器在后台运行,默认为 false。启动后不进入容器
-e, --env: 指定环境变量。
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-p,--publish:指定容器暴露的端口,宿主端口:容器内部端口
--name:为容器指定一个名字。
-v,--volume: 映射目录(卷),宿主目录:容器内部目录,常用来将配置文件或者是数据文件放在宿主机器上。
--restart: 指定容器停止后的重启策略:
     no: 容器退出时不重启,默认值
     no-failure: 容器故障退出(返回值为零)时重启,no-failure:3 循环重启3次。
     always: 容器退出时总是重启
--privileged:指定容器是否为特权容器,特权容器拥有所有的权限,默认为 false。
--rm:指定容器停止后自动删除容器(不支持以docker run -d 后天启动的容器),默认为 false.

docker基础命令

docker --version:输出 Docker 版本信息。
docker container rm xxx:删除本地一个或多个容器。如删除一个名为webserver的容器:docker container rm webserver 或者 docker rm webserver。
docker container start xxx:启动 xxx 容器 或者 docker start xxx
docker container stop xxx:停止 xxx 容器,如停止一个名为 webserver 的容器:docker container stop webserver。
docker container prune:清理掉所有处于终止状态的容器。
docker images: 查看本地所有的镜像
docker image rm xxx:删除一个或多个镜像。如删除nginx镜像:docker image rm nginx。
docker rmi xxx:删除一个或多个镜像。
docker pull xxx:tag:从仓库中获取指定标签(可以理解为版本)的镜像。如获取 MySQL5.7 的镜像:docker pull mysql:5.7;如果不添加tag,默认获取的是 latest 最新版本。docker pull mysql 等同于 docker pull mysql:latest。
docker ps:查看正在运行的容器。
docker ps -a:查看所有的容器,包含已停止的和正在运行的。
docker start xxx:启动一个或多个已经停止的容器。
docker stop xxx:停止一个或多个正在运行的容器。
docker rm xxx:删除一个或多个容器。
docker version:输出 Docker 更加详细的信息。 

docker diff 容器id :查看改动

docker commit:提交修改为镜像.配合exec使用,进入容器后做了修改.

docker history 镜像名称:标签|ID :该镜像的构建历史

docker logs -f 容器ID/容器名   查看日志

docker run -it 镜像 sh -c "ls && echo '  ' "   使用sh -c执行多条命令,应为Dockerfile中只能执行一条 

docker exec -it 1f6091e48979 /bin/sh   进入容器

docker run -itd test/ubuntu:v0.1 /bin/bash   //Error response from daemon: No command specified,这种错可以在run时加 /bin/bash试试

一般docker中没有VI或者其它相应的文本编辑器,为了写个东西安装个vi就可以解决问题,除此之外还有别的办法

  1. 登陆docker中找到需要编辑的文件的位置
sudo docker ps -a
sudo docker exec -it xxx /bin/bash
  1. 通过docker cp把这个文件拷贝出来
sudo docker cp xxxx:/etc/mysql/my.cnf /home/tom/
  1. 再拷贝回去
sudo docker cp  /home/tom/my.cnf  xxxx:/etc/mysql/

  注意这个xxxx是docker ps -a 获取的container id

镜像导入导出命令组

docker save busybox > busybox.tar

docker load < busybox.tar 

容器导入导出命令组

docker export busybox > busybox.tar

docker import busybox.tar test:11

  • docker import dockertest.tar -- centos:111 或者 cat dockertest.tar | docker import - imagename:tag