Docker常用命令
啟動類
啟動 docker
systemctl start docker
關閉 docker
systemctl stop docker
重新啟動 docker
systemctl restart docker
docker 設置自啟動
systemctl enable docker
查看 docker 運行狀態
systemctl status docker
查看 docker 版本號等信息
docker version
或者
docker info
# 該命令還可以查看到有多少 容器及其狀態 和 鏡像 的信息```
> docker 幫助
```shell
docker --help // 查看總體文檔
docker run --help // 查看docker run 的幫助文檔
鏡像類
查看鏡像
docker images
搜索鏡像
docker search [OPTIONS] 鏡像名字
docker search mysql
拉取鏡像
docker pull
docker pull mysql #沒有制定版本則默認最新版
運行鏡像
docker run
docker run tomcat
# 運行鏡像后可以按 ctrl+c 退出
刪除鏡像
docker rmi 鏡像名/鏡像ID #若鏡像在運行則會報錯
docker rmi -f 鏡像名/鏡像ID #強制刪除一個
docker rmi -f mysql
docker rmi -f 鏡像名/鏡像ID 鏡像名/鏡像ID 鏡像名/鏡像ID #刪除多個 其鏡像ID或鏡像用用空格隔開即可
docker rmi -f mysql redis
docker rmi -f $(docker images -aq)
#刪除全部鏡像 -a 意思為顯示全部, -q 意思為只顯示ID
加載鏡像
docker load -i 鏡像保存文件位置
docker load myimage.tar
保存鏡像
docker save 鏡像名/鏡像ID -o 鏡像保存位置和名字
docker save tomcat -o /myimage.tar
容器類
查看正在運行的容器
docker ps
docker ps -a # 查看所有容器
#加格式化方式訪問,格式會更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
創建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用參數:
--name=NAME #為容器指定名字為NAME,不使用的話系統自動為容器命名
-d: 后臺運行容器并返回容器ID,也即啟動守護式容器(后臺運行);
-i:以交互模式運行容器,通常與 -t 同時使用;
-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
也即啟動交互式容器(前臺有偽終端,等待交互,一般連用,即-it);
-P: 隨機端口映射,大寫P
-p: 指定端口映射,小寫p
# 創建并允許 Nginx 容器
docker run -d --name nginx -p 80:80 nginx
啟動守護式容器(后臺運行)
docker run -d 容器名
docker run -d redis:6.0.8
停止容器
docker stop 容器名
docker stop nginx
啟動容器
docker start 容器名
docker start nginx
docker restart 容器名
docker restart nginx
進入正在運行的容器
docker exec -it 容器名 bashshell
docker exec -it nginx /bin/bash
停止容器
docker stop 容器名
docker stop nginx
強制停止容器
docker kill 容器名
docker kill nginx
刪除容器
#刪除一個
docker rm 容器ID
docker rm nginx
docker rm -f 容器ID #強制刪除
docker rm -f nginx
#刪除多個
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
查看容器日志
docker logs 容器名
docker logs nginx
查看容器內運行的進程
docker top 容器名
docker top nginx
查看容器內部細節
docker inspect 容器名
docker inspect nginx
創建容器數據卷掛載
# 創建容器并指定數據卷,注意通過 -v 參數來指定數據卷
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
查看數據卷
docker volume ls
查看數據卷詳情
docker volume inspect 數據卷名
docker volume inspect html
刪除數據卷
docker volume rm 數據卷名
docker volume rm html
網絡類
查看網絡
docker network ls
創建網絡
docker network create 網絡名
docker network create hmall
查看網絡數據源
docker network inspect 網絡名
docker network inspect hmall
刪除網絡
docker network rm 網絡名
docker nerwork rm hmall
Docker compose
假設docker run 部署 mysql命令 如下:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v ./mysql/data:/var/lib/mysql \
-v ./mysql/conf:/etc/mysql/conf.d \
-v ./mysql/init:/docker-entrypoint-initdb.d \
--network hmall
mysql
那么用docker-compose.yml 文件定義就是:
version: "3.8"
services:
mysql:
image: mysql
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123
volumes:
- "./mysql/conf:/etc/mysql/conf.d"
- "./mysql/data:/var/lib/mysql"
networks:
- new
networks:
new:
name: hmall
查看幫助
docker-compose -h
啟動所有服務
docker-compose up
docker-compose up -d # 后臺運行
停止并刪除容器、網絡、卷、鏡像
docker-compose down
進入容器實例內部
docker-compose exec yml里面的服務id
展示容器
docker-compose ps
展示進程
docker-compose top
查看容器輸出日志
docker-compose logs yml里面的服務id
檢查配置
docker-compose config
docker-compose config -q # 檢查配置,有問題才有輸出
啟動服務
docker-compose start
重啟服務
docker-compose restart
停止服務
docker-compose stop
其他
命令別名
# 修改/root/.bashrc文件
vi /root/.bashrc
內容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias dps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"'
alias dis='docker images'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
#退出
exit
:wq
#執行命令使別名生效
source /root/.bashrc

浙公網安備 33010602011771號