0%

docker常用命令

docker

Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。沙盒机制/沙箱机制。

  • 镜像(Image)容器模板。Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。(类比java中 class)

  • 容器(Container)镜像运行实体。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。(类比java中 class new 出来的实例对象)

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

1. docker 基础命令

启动docker

1
systemctl start docker

重启docker

1
systemctl restart docker

停止docker

1
systemctl stop docker

docker设置随服务启动而自启动

1
systemctl enable docker

docker开机自启动

1
chkconfig docker on

2. docker 镜像操作

查找镜像

1
docker search <IMAGE_ID/NAME>

下载镜像

1
docker pull  <IMAGE_ID>

上传镜像

1
docker push <IMAGE_ID>

查看镜像列表

1
docker images 

删除镜像

1
docker rmi <IMAGE_ID>

构建镜像

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

1
2
3
4
5
6
7
8
9
10
11
runoob@runoob:~$ cat Dockerfile 
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

3. docker 容器操作

停止容器

1
docker stop <CONTAINER_ID>

启动容器

1
docker start <CONTAINER_ID>

重启容器

1
docker restart <CONTAINER_ID>

删除容器

1
docker rm <CONTAINER_ID>

查看容器信息

1
docker inspect <CONTAINER_ID>

进入容器

1
docker exec -it <CONTAINER_ID> /bin/bash

容器自启动

1
docker update --restart=always <CONTAINER_NAME>

列出所有在运行的容器信息

1
2
docker ps
docker ps -a # 查看所有容器信息

输出详情介绍:

  • CONTAINER ID: 容器 ID。

  • IMAGE: 使用的镜像。

  • COMMAND: 启动容器时运行的命令。

  • CREATED: 容器的创建时间。

  • STATUS: 容器状态。状态有7种:

    • created(已创建)
    • restarting(重启中)
    • running 或 Up(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)
  • PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

  • NAMES: 自动分配的容器名称。

查看容器日志

1
docker logs --tail="100"  <CONTAINER_NAME>

容器和本地文件系统之间拷贝文件/文件夹

1
docker cp 本地文件的路径 <CONTAINER_ID>:容器路径

查看容器启动时命令

1
docker inspect  --format "$(curl -s https://gist.githubusercontent.com/efrecon

4. 常用容器启动命令

Nginx

1
docker run  --name nginx -p 80:80 -p 443:443   -v /opt/nginx/html:/usr/share/nginx/html  -v /opt/nginx/conf.d/:/etc/nginx/conf.d/  -v /opt/nginx/logs:/var/log/nginx -d --restart=always nginx

Redis

1
docker run -p 6379:6379 --name redis -v /opt/redis/redis.conf:/etc/redis/redis.conf -v /opt/redis/data:/data  redis-server /etc/redis/redis.conf -d --restart=always redis

Mysql

1
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf:/etc/mysql/conf.d --name mysql -d --restart=always mysql

Nacos

1
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODE=standalone -v /opt/nacos/logs/:/home/nacos/logs -v /opt/nacos/conf/:/home/nacos/conf/ --restart=always nacos

常用

查看所有镜像 docker images 并选择一个镜像

docker ps 查看所有正在运行的容器(start)

docker ps -a 查看所有容器(start/stop)

docker logs -f <container ID> 查看日志,日志文件标准输出

docker start <container ID> 激活一个容器

docker attach <container ID> 激活之后的容器直接进入命令行,但是exit之后就不在后台继续运行了

docker exec <container ID> 从容器退出之后不会停止,而是在后台运行(推荐使用)

docker run -it <container ID> /bin/bash bash命令行 /bin/sh “shell脚本”

docker stop <container ID> 停止一个ID

您的支持将鼓励我继续创作!