2020之我的docker学习
网上很多教程都已经很老旧了,甚至连命令都对应不上,于是今天特此记录一下:以下所有命令建议在root权限下进行,最次也应该加上sudo前缀。1 安装docker安装docker主流分为windows、linux、macos。这里建议去docker官方网站看https://docs.docker.com/get-docker/,其实docker官网的get start真的做的烂的一坨翔,没有主次,信息
网上很多教程都已经很老旧了,甚至连命令都对应不上,于是今天特此记录一下:
以下所有命令建议在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官方提供了一种通用的解决办法。
官方提出了三种安装方法:
- Install using the repository
- Install from a package
- Install using the convenience script
因此我这里主要说第三种方法:如下两行命令即可
$ 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>:<容器内路径>
更多推荐
所有评论(0)