实际使用时整理的一些docker常用命令

docker常用命令

使用容器名称的地方可以替换成对应id,反之亦然

设置共享文件夹

docker run -itv /Users/***/projects/project_name:/usr/share/nginx/html/project_name/my_docker_package:v1.1 /bin/bash

启动docker

sudo service docker start

网络

创建网络

docker network create <网络名称>

获取 docker 容器(container)的 ip 地址

获取单个IP
docker inspect --format '{{ .NetworkSettings.IPAddress }}'  <container-ID> 
获取所有容器IP
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

停止/启动/重启容器

容器创建成功以后,除非容器有问题,否则不要重新使用docker run,避免重新生成容器,使用start启动即可

停止

docker stop <容器名称>

启动

docker start <容器名称>

重启

docker restart <容器名称>

使用镜像

拉取镜像

docker pull <镜像名称>:<镜像标签>
【示例】

sudo docker pull php:7.2.17-fpm
sudo docker pull nginx:1.14.2

php

docker run -p <宿主机端口号>:<容器端口号> --name <php-fpm容器名称> -v <当前主机站点目录>:<容器站点目录> -d <php-fpm镜像名称>
【示例】

docker run \
--name php  --privileged=true \
-p 9000:9000 \
-v $PWD/docker/www:/usr/share/nginx/html  \
-v $PWD/docker/php:/usr/local/etc/php  \
-d php:7.2.17-fpm

nginx

docker run -p <宿主机端口号>:<容器端口号> --name <nginx容器名称> -v <当前主机站点目录>:<容器站点目录> -v <主机当前nginx配置目录conf.d>:<容器当前nginx配置目录conf.d> -v <当前主机日志目录>/logs:/wwwlogs --link <连接的容器名称>:<连接的容器别名>-d <nginx镜像名称>
【示例】

docker run \
--name nginx \
-d -p 80:80  --privileged=true \
-v $PWD/docker/www:/usr/share/nginx/html \
-v $PWD/docker/nginx/conf.d:/etc/nginx/conf.d \
--privileged=true \
--link php:fpm \
nginx:1.14.2

【参考nginx配置default.conf】

server {
  listen  80 default_server;
  root   /usr/share/nginx/html;

  location / {
    index index.html index.htm index.php;
  }

  location ~ \.php(.*)$ {
    root   /usr/share/nginx/html;

    fastcgi_pass fpm:9000;

    include  fastcgi_params;

    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }
}

进入容器执行交互式命令

进去以后就像操作ubuntu一样,可以安装相关软件依赖库,安装软件依赖库注意先执行“apt-get update”一下,如果安装了较多的软件依赖,建议制作镜像推送到仓库,便于复用

docker exec -it <容器名称> /bin/bash

查看容器

查看运行中的容器

docker ps

查看所有容器

docker ps -a

删除容器

删除所有容器

docker rm docker ps -a -q

删除指定容器

docker rm <容器名称>

删除镜像

删除单个镜像

docker rmi <容器名称>

删除所有镜像

docker rmi docker images -q

按条件删除镜像

没有打标签

docker rmi docker images -q | awk '/^<none>/ { print $3 }'

镜像名包含关键字
docker rmi --force `docker images | grep doss-api | awk '{print $3}'`    //其中doss-api为关键字

推送镜像到docker hub

需要先在hub.docker.com上注册并创建仓库repository

提交

docker commit -m “<注释>” <容器id> <仓库名称>:
示例:

sudo docker commit -m 'my first packaged lnmp' b964baa79185 hereid/hawking-lnmp:v1

登录docker

docker login
输入用户名、密码

把镜像推送到仓库

sudo docker push <仓库名称>:
示例:sudo docker push hereid/hawking-lnmp:v1

官方示例

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname

【示例】在docker中使用node

首次安装

sudo docker pull node
sudo docker run  --name node -i -t node:latest /bin/bash #测试
sudo docker rm node

运行npm run build

sudo docker run --name node -i -t -v $PWD/project_name:/var/www/project_name node sh -c 'cd /var/www/project_name && npm run build && exit'
sudo docker rm node

docker run命令

语法

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“nginx-lb”: 为容器指定一个名称;
–dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值