您的位置:首页 > 运维架构 > Docker

Docker 常用命令汇总

2017-11-07 23:21 831 查看
主要针对 CentOS 版本系统而言,其他版本大同小异,可做参考。

1、安装docker,设置开机自启动,重新加载配置

良心教程,可以克服各种安装困难的好方法

systemctl enable docker.service

systemctl daemon-reload

2、阿里云镜像加速

请注册阿里云的账号,去上面找找阿里提供的 curl 代码。

3、启动、重启、停止docker 以下所有命令默认在 root 用户下:

systemctl start docker

systemctl restart docker

systemctl stop docker

service docker start

service docker stop

service docker restart

service docker status

两种命令都可以满足需求,但是在centOS系统中,我一般都用第一个 systemctl 命令

4、docker 守护进程绑定

docker daemon -H tcp://0.0.0.0:2375

export DOCKER_HOST=”tcp://0.0.0.0:2375”

docker daemon -H unix://home/docker/docker.sock

该语句将docker 守护进程绑定到宿主机的所有端口

设置DOCKER_HOST环境变量,避免每次都写第一条语句,

将守护进程绑定到非默认的套接字上。

5、查看docker的信息

docker info

6、运行docker容器

docker run -i -t ubuntu:latest /bin/bash

docker run -d –name system –log-driver=”syslog” –link mysql_my:mysql -p 192.168.0.122:5000:5000 -v $PWD/data/:/usr/share/ –restart-always ubuntu:latest -c ‘while true; do echo hello world; sleep 1; done’

参数具体含义就不说了,常用的就是 -i, -v, -d, -t, -p, -e, –link。-c 是控制命令,其中,–log-driver 是指将容器产生的日志全部输出到syslog 中,且使用 docker logs 命令不能获取任何日志内容。

link 标志可以避免端口暴露,让容器任意访问公开端口,但是不暴露,更加安全。

7、创建docker但不启动运行

docker create -d –name system ubuntu:latest

docker start system 启动起来

8、获取docker容器日志

docker logs system_mier

9、查看docker容器运行的所有状态

docker stats + docker名字,也可以不加

10、在容器内运行交互命令

docker exec -t -i daemon_eval /bin/bash

11、停止,删除,杀死容器

docker stop daemon_eval

docker rm daemon_eval

docker kill darmon_few

docker stop `docker ps -a -q`

docker start $(docker ps -a | awk ‘{ print $1}’ | tail -n +2)

以上后面两个均是停止或启动所有容器,可以看出,第一个版本比较简洁,第二个版本是指支持 go 语言模板。除此之外,还有很多的命令都支持 go 语言 模板。

12、深入查看容器的详细信息

docker inspect few_abracada

docker inspect –format=’{{ .State.Running }}’ few_abracada

13、列出容器,镜像,拉取,搜索镜像

docker ps -a

docker images

docker pull redis:latest

docker search redis

14、在容器内一番操作后,将其提交成镜像

docker commit 容器ID myimage:v1

docker commit -m”A new custom image” -a”Cecil Charlie” hfeu23892bi myimage:v2

其中, -m 指定新创建的镜像的提交信息,-a指作者信息。

15、制作Dockerfile之后创建镜像

转到Dockerfile文件所在的目录下,否则很容易报错,执行:

docker build –no-cache -t=”myimage:v3” .

docker history 32hu238dhxo 列出创建该镜像的每一层历史信息

16、Dockerfile文件中指令

CMD:类似于默认开机启动项,可被覆盖。在 docker run 中可以被 -c覆盖。

ENTRYPOINT:命令运行前的进入点,不可被覆盖,功能也是默认开机启动项,在 docker run 命令中可以被 –entrypoint 标志覆盖。

WORKDIR:调整镜像容器中的工作目录,可被 -w 覆盖。

ENV:设置环境变量。

USER:指定容器以什么用户身份去运行,默认是 ROOT

VOLUME:给容器添加持久卷。

ADD:添加文件,或者 url对应的文件,有下载功能。

COPY:添加文件,无下载功能。

LABEL:给镜像添加元数据,键值对形式。

STOPSIGNAL:设置停止容器时发送什么系统调用信号给容器。

ARG:构建build镜像时,传递给 build 命令的参数,只需要在build 时添加 –build-arg 标志即可。

ONBUILD:为镜像添加触发器。若某个镜像被其他镜像当做基础镜像进行构建,则该镜像的触发器被触发。

17、推送,删除镜像

docker push static_sys

docker rmi ststic_sys

18、创建docker networking网络

docker network create app

19、将容器链接到网络

docker run -d –net=app –name db mysql:latest

docker network connect app db

docker network disconnect app db

20、查看网络的详细信息

docker network inspect app

21、安装docker-compose

很多linux系统自带python,有pip命令。

pip install -U docker-compose

docker-compose version 查看版本

docker compose的语法规则

22、运行docker-compose

docker-compose up -d

docker-compose up -d –scale mysql=3 –scale redis=2

23、docker-compose的操作,与 docker容器命令类似

docker-compose logs

docker-compose stop

docker-compose ps

docker-compose rm

24、docker API

这一块我还是生手

25、docker 多余镜像,容器,日志的清理

docker prune
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker 命令