整理一下docker基本命令和用法

之前也学习过docker的基本使用但是都没有整理用法,所以学完也就忘了,用的时候现百度。

今天又用到docker索性整理下来以后需要直接拿来用就行。

先理清2个概念1、容器 2、镜像,总是很容易混淆,

镜像就是需要的软件版本,容器就是镜像启动后产生的空间

  1. 查看所有镜像
$ docker images
  1. 查看所有创建的容器
$ docker ps -a
  1. 查看正在运行的容器
$ docker ps
  1. 进入正在运行的容器
$ docker exec -it <容器的 CONTAINER ID 或者 容器 NAMES > /bin/bash

# 例:
$ docker ps
CONTAINER ID    IMAGE                        COMMAND    CREATED        STATUS       PORTS                     NAMES
ecda634206af    jumpserver/guacamole:test    "/init"    12 days ago    Up 3 days    0.0.0.0:8081->8080/tcp    jms_guacamole

$ docker exec -it ecda634206af /bin/bash 或 docker exec -it jms_guacamole /bin/bash
# 如果没有 /bin/bash 可以使用 /bin/sh  例: docker exec -it jms_koko /bin/sh
  1. 开始 停止 重启 容器
$ docker start <容器的 CONTAINER ID 或者 容器 NAMES >
$ docker stop <容器的 CONTAINER ID 或者 容器 NAMES >
$ docker restart <容器的 CONTAINER ID 或者 容器 NAMES >

# 例:
$ docker ps
CONTAINER ID    IMAGE                        COMMAND    CREATED        STATUS       PORTS                     NAMES
ecda634206af    jumpserver/guacamole:test    "/init"    12 days ago    Up 3 days    0.0.0.0:8081->8080/tcp    jms_guacamole

$ docker start ecda634206af 或 docker start jms_guacamole
$ docker stop ecda634206af 或 docker stop jms_guacamole
$ docker restart ecda634206af 或 docker restart jms_guacamole
  1. 查看容器 log
$ docker logs -f <容器的 CONTAINER ID 或者 容器 NAMES >

# 例:
$ docker ps
CONTAINER ID    IMAGE                        COMMAND    CREATED        STATUS       PORTS                     NAMES
ecda634206af    jumpserver/guacamole:test    "/init"    12 days ago    Up 3 days    0.0.0.0:8081->8080/tcp    jms_guacamole

$ docker logs -f ecda634206af 或 docker logs -f jms_guacamole
  1. 删除容器
$ docker rm <容器的 CONTAINER ID 或者 容器 NAMES >

# 例:
$ docker ps
CONTAINER ID    IMAGE                        COMMAND    CREATED        STATUS       PORTS                     NAMES
ecda634206af    jumpserver/guacamole:test    "/init"    12 days ago    Up 3 days    0.0.0.0:8081->8080/tcp    jms_guacamole

$ docker rm ecda634206af 或 docker rm jms_guacamole
  1. 删除镜像
$ docker rmi <镜像的 CONTAINER ID>

# 例:
$ docker images
REPOSITORY             TAG     IMAGE ID        CREATED        SIZE
jumpserver/guacamole   test    e0c2ec53a8fd    13 days ago    1.23GB

$ docker rmi e0c2ec53a8fd
  1. 更新镜像
$ docker pull <镜像地址:版本>

# 例:
$ docker pull wojiushixiaobai/jms_all:latest
$ docker pull wojiushixiaobai/jms_koko:1.5.6
$ docker pull wojiushixiaobai/jms_guacamole:1.5.6

docker image mysql:5.6 inspect  环境变量是看你的docker容器有没有需要这个环境变量

$ docker run --name mysql -d -p 127.0.0.1:8081:8080 -e JUMPSERVER_SERVER=http://$Server_IP:8080 -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN -v /home/mysql:/var/mysql --restart=always mysql:1.5.6
--name 指定容器的名称  
-d, --detach=false 指定容器运行于前台还是后台,默认为false
-p 指定映射的端口,:前面为目标端口,后面为容器的端口
-e, --env=[], 指定环境变量,容器中可以使用该环境变量
--restart=always 创建容器没有加导致的后果是:当 Docker 重启时,容器未能自动启动。
docker container update --restart=always 容器名字
-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录 : 之前是宿主机目录,之后是容器需暴露的目录

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章