之前也學習過docker的基本使用但是都沒有整理用法,所以學完也就忘了,用的時候現百度。
今天又用到docker索性整理下來以後需要直接拿來用就行。
先理清2個概念1、容器 2、鏡像,總是很容易混淆,
鏡像就是需要的軟件版本,容器就是鏡像啓動後產生的空間
- 查看所有鏡像
$ docker images
- 查看所有創建的容器
$ docker ps -a
- 查看正在運行的容器
$ docker ps
- 進入正在運行的容器
$ 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
- 開始 停止 重啓 容器
$ 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
- 查看容器 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
- 刪除容器
$ 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
- 刪除鏡像
$ docker rmi <鏡像的 CONTAINER ID> # 例: $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jumpserver/guacamole test e0c2ec53a8fd 13 days ago 1.23GB $ docker rmi e0c2ec53a8fd
- 更新鏡像
$ 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=[] 給容器掛載存儲卷,掛載到容器的某個目錄 : 之前是宿主機目錄,之後是容器需暴露的目錄