网上很多教程都已经很老旧了,甚至连命令都对应不上,于是今天特此记录一下:

以下所有命令建议在root权限下进行,最次也应该加上sudo前缀。


1 安装docker

安装docker主流分为windows、linux、macos。这里建议去docker官方网站看https://docs.docker.com/get-docker/,其实docker官网的get start真的做的烂的一坨翔,没有主次,信息排版太密,flutter都没这么密,找了半天都没找到安装在哪(相比于其他应用,比如大二学django的时候,那时候我那么菜,只用了不到20s就开始了学习。这个docker我如今已经研一了整整找了将近1min才找到)。

但是对于不同的linux系统,具体的命令差距又比较大,对我这样的linux新手实在是太复杂了,但是好在docker官方提供了一种通用的解决办法。

官方提出了三种安装方法:

因此我这里主要说第三种方法:如下两行命令即可

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

接下来看看你有没有安装成功:

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
03f4658f8b78: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.
...

如果出现了上述的内容说明你成功了~!


2 第一次尝试docker

2.1 镜像操作

2.1.1 拉取镜像docker pull <name>

首先我们的系统中应该已经存在了一个hello-world镜像,但这绝对不是我们想要的,我现在要拉取一个Nginx镜像。

如果你使用docker pull nginx,也不是不可以,这样是从docker的官方仓库拉取的,好像是速度比较慢。

我这里从国内的一个镜像网站http://hub.daocloud.io/拉取镜像,你可以上去看看有哪些镜像。

$ docker pull daocloud.io/library/nginx:latest

2.1.2 查看全部镜像及信息 docker images

下载好了以后执行docker images命令,查看你的电脑上现在全部的镜像的列表。
在这里插入图片描述

2.1.3 删除一个镜像 docker rmi <IMAGE ID>

$ docker rmi 09

这里甚至只用输入一部分唯一的ID前缀即可。

如果你想删掉hello-world,他会提示无法删除,你要先停止镜像。

2.1.4 镜像的导出与载入

有时候,你的镜像不是从网上下载的,是你同学copy给你的,因此,你得学会导出和载入。但是导入以后的镜像名字和版本号会丢失,变为None

导出
docker save -o <导出路径/文件名> <镜像id>
载入
docker load -i <文件路径>
修改镜像名称
docker tag <镜像id> <新name:版本号>

2.2 容器的操作

2.2.1 运行一个容器

# 简易版,这是在前台运行
docker run <镜像标识|镜像名>
# 完整版
docker run -d <-p host端口|容器端口> <--name 容器名> <镜像标识|镜像名>
# -d: 后台运行
# -p: 宿主主机端口|容器内部端口
# --name:指定容器名称

2.2.2 查看容器

# 查看正在运行的容器
docker ps [-qa]
# -a:全部容器
# -q:只看容器ID

2.2.3 查看容器日志

# 查看正在运行的容器
docker logs -f <容器ID>
# -a:全部容器
# -q:只看容器ID

2.2.4 进入容器内部

docker exec -it <容器ID> bash

2.2.5 停止、删除容器

# 停止指定容器
docker stop <容器ID>
# 停止全部容器
docker stop $(docker ps -qa)
# 删除指定容器
docker rm <容器ID>
# 删除全部容器
docker rm $(docker ps -qa)

2.2.6 启动容器

docker run <容器ID>

2.2.7 拷贝文件到容器

docker cp <文件> <容器ID>:<容器内路径>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐