Docker

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:容器内路径 主机路径

好好学习 天天向上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值