Docker安装
测试Docker安装是否成功
docker version
配置国内阿里云镜像加速:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://i9o17n3g.mirror.aliyuncs.com"
]
}
安装完成测试hello-world:
docker run hello-world
Docker常用命令:
帮助命令
docker version #查看docker的版本信息
docker info #查看docker的系统信息,包括镜像和容器的数量
docker [命令] --help #帮助命令 docker images --help
命令官网文档:https://docs.docker.com/engine/reference/run/
镜像命令
docker images
查看本地上所有的镜像
liuyike@liuyikedeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/getting-started latest e5be50c31cb9 10 days ago 29.8MB
hello-world latest feb5d9fea6a5 14 months ago 13.3kB
#注释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
Options:
-a, --all Show all images (default hides intermediate images)
-q, --quiet Only show image IDs
docker search
搜索镜像
liuyike@liuyikedeMacBook-Pro ~ % docker search mysql
Options:
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
liuyike@liuyikedeMacBook-Pro ~ % docker search mysql -f stars=600
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13562 [OK]
mariadb MariaDB Server is a high performing open sou… 5169 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M… 699 [OK]
也可以在 https://hub.docker.com/ 直接搜索
docker pull
下载镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
liuyike@liuyikedeMacBook-Pro ~ % docker pull mysql
Using default tag: latest #如果不写 tag,默认就是 latest 最新版本
latest: Pulling from library/mysql
72a69066d2fe: Pull complete #分层下载,docker images 的核心,联合文件系统
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
688ba7d5c01a: Pull complete
00e060b6d11d: Pull complete
1c04857f594f: Pull complete
4d7cfa90e6ea: Pull complete
e0431212d27d: Pull complete
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709 #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址
#等价
docker pull mysql
docker pull docker.io/library/mysql:latest
#指定版本下载
liuyike@liuyikedeMacBook-Pro ~ % docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Already exists
93619dbc5b36: Already exists
99da31dd6142: Already exists
626033c43d70: Already exists
37d5d7efb64e: Already exists
ac563158d721: Already exists
d2ba16033dad: Already exists
0ceb82207cd7: Pull complete
37f2405cae96: Pull complete
e2482e017e53: Pull complete
70deed891d42: Pull complete
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
docker rmi
删除镜像
liuyike@liuyikedeMacBook-Pro ~ % docker rmi c20987f18b13 #根据镜像id删除
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92
liuyike@liuyikedeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 c20987f18b13 11 months ago 448MB
mysql 8.0 3218b38490ce 11 months ago 516MB
hello-world latest feb5d9fea6a5 14 months ago 13.3kB
liuyike@liuyikedeMacBook-Pro ~ % docker rmi mysql:5.7 #根据tag删除
Untagged: mysql:5.7
Untagged: mysql@sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Deleted: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76
Deleted: sha256:6567396b065ee734fb2dbb80c8923324a778426dfd01969f091f1ab2d52c7989
Deleted: sha256:0910f12649d514b471f1583a16f672ab67e3d29d9833a15dc2df50dd5536e40f
Deleted: sha256:6682af2fb40555c448b84711c7302d0f86fc716bbe9c7dc7dbd739ef9d757150
Deleted: sha256:5c062c3ac20f576d24454e74781511a5f96739f289edaadf2de934d06e910b92
liuyike@liuyikedeMacBook-Pro ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0 3218b38490ce 11 months ago 516MB
hello-world latest feb5d9fea6a5 14 months ago 13.3kB
liuyike@liuyikedeMacBook-Pro ~ % docker rmi -f $(docker images -aq) #全部删除
容器命令
准备一个centos7镜像,创建一个容器。
docker pull centos
docker run
新建容器,并启动。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
#参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 【小写】 指定容器的端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口【最常用】
-p 容器端口
容器端口
-P 【大写】 随机指定端口
#测试,启动并进入容器
liuyike@liuyikedeMacBook-Pro ~ % docker run -it centos /bin/bash
#从容器中退出
[root@b7c0e761c250 /]# exit
exit
docker ps
列出所有正在运行的容器
liuyike@liuyikedeMacBook-Pro ~ % docker ps --help
Usage: docker ps [OPTIONS]
List containers
Options:
-a, --all Show all containers (default shows just running)
-f, --filter filter Filter output based on conditions provided
-n, --last int Show n last created containers (includes all states) (default -1)
-l, --latest Show the latest created container (includes all states)
-q, --quiet Only display container IDs
-s, --size Display total file sizes
liuyike@liuyikedeMacBook-Pro ~ % docker ps -a #列出正在运行容器+历史运行过的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7c0e761c250 centos "/bin/bash" 13 hours ago Exited (0) 11 minutes ago busy_poincare
退出容器
exit #退出容器并停止容器
ctrl + p + q #退出容器且容器继续运行
删除容器
docker rm [容器id] #删除指定容器,不能删除正在运行的容器,如果要强制删除 docker rm -f
docker rm -f $(docker ps -aq) #删除全部容器
docker ps -a -q | xargs docker rm #删除所有容器
启动、停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
后台启动
docker run -d [image]
liuyike@liuyikedeMacBook-Pro ~ % docker run -d centos
#问题:docker ps发现没有正在运行的容器 centos停止了
#⚠️:docker容器使用后台方式运行,就必须要有一个前台进程;docker发现没有应用,就会自动停止
docker logs
查看日志
liuyike@liuyikedeMacBook-Pro ~ % docker logs -tf -n 10 d5b315277862
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--since string Show logs since timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
-n, --tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
--until string Show logs before a timestamp (e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
查看容器进程信息
liuyike@liuyikedeMacBook-Pro ~ % docker top 61f237dcd8c9
UID PID PPID C STIME TTY TIME CMD
root 4824 4798 0 05:41 ? 00:00:00 /bin/bash
查看容器元数据
docker inspect [容器id]
docker exec
进入当前正在运行的容器
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
#方式一
docker exec -it [容器id] /bin/bash
Options:
-d, --detach Detached mode: run command in the background
--detach-keys string Override the key sequence for detaching a container
-e, --env list Set environment variables
--env-file list Read in a file of environment variables
-i, --interactive Keep STDIN open even if not attached
--privileged Give extended privileges to the command
-t, --tty Allocate a pseudo-TTY
-u, --user string Username or UID (format: <name|uid>[:<group|gid>])
-w, --workdir string Working directory inside the container
#方式二
docker attach [容器id]
# 区别
# docker exec #进入容器后开启一个新的终端
# docker attach #进入容器正在执行的终端,不会启动新的进程
从容器内拷贝文件到主机
docker cp 容器id:容器内路径 主机路径
好好学习 天天向上。