2.Docker常用命令(linux)

19 阅读2分钟

Docker服务相关命令

  • 启动docker服务: systemct1 start docker
  • 停止docker服务: systemctl stop docker
  • 重启docker服务: systematl restart docker
  • 查看docker服务状态: systemctl status docker
  • 设置开机启动docker服务: systemctl enable docker

Docker镜像

  • 查看所有镜像 docker images docker images -q查看id
  • 搜索镜像有关xxx docker search redis
  • 拉取镜像 xxx `docker pull xxx [version]
  • 删除镜像 docker rmi xxx按编号 docker rmi xxx:yyy按名称和版本号(不写默认latest)

Docker容器

  • 创建容器 docker run -it --name=c1 centos:7 /bin/bash 保持运行并分配终端,命名为c1,指定版本,进入容器后的初始化指令(打开一个shell)
  • 查看正在运行的容器 docker ps 查看正在运行的容器 docker ps -a 常看所有的容器
  • 后台运行容器 docker run -id --name=c2 centos:7
  • 进入容器 docker exec -id c2 /bin/bash 退出不会结束容器
  • 关闭容器 docker stop c2
  • 启动容器 docker start c2
  • 删除容器 docker rm c1 docker ps -aq 查看所有容器的id docker rm docker ps -aq 删除所有容器(有运行的不能删除)
  • 查看容器信息 docker inspect c1
  • 复制文件到容器中 docker cp dump.sql gva-mysql:/
  • 查看日志
  $ docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
 

-i: 让容器的标准输入(STDIN)始终保持打开,即使没有输入任何指令(没有附加)
-t: 分配一个终端,这样我们就可以使用命令来操作
-d: 分离模式,让命令在后台(指的是宿主后台)运行。
--user:指定用户运行,当我们需要 root 用户权限时可以指定。

docker run --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc

无法运行,怎么修改配置

Docker容器无法启动,里面的配置文件如何修改 - 知乎 (zhihu.com)

方法一:

把docker容器中的配置文件复制到主机中,然后在主机中修改,修改完成后再复制到docker容器中,这里需要使用的docker的命令:

docker cp [容器id]:docker容器中配置文件路径  主机路径

例如:

docker cp mysql:/etc/mysql/my.cnf /home/my.cnf

这样就能把容器中的文件拿到本地来,然后进行修改之后呢,再通过该命名上传到容器中去。

例如:

docker cp 主机文件路径 容器id:docker容器中配置文件路径
docker cp /home/my.cnf mysql:/etc/mysql/my.cnf

之后我们重启容器就可以了。