docker 笔记
一、安装与卸载 docker
1 安装
curl -sSL https://get.docker.com/ | sh
2 启动 docker 服务
sudo systemctl start docker
3 卸载
sudo systemctl stop docker
sudo dnf -y remove docker-ce docker-ce-cli containerd.io
sudo rm -rvf /var/lib/docker
sudo groupdel docker
二、基本命令
1 拉取镜像 (pull)
docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a803e7c4b030: Pull complete
8b625c47d697: Pull complete
4d3239651a63: Pull complete
0f816efa513d: Pull complete
01d159b8db2f: Pull complete
5fb9a81470f3: Pull complete
9b1e1e7164db: Pull complete
Digest: sha256:32da30332506740a2f7c34d5dc70467b7f14ec67d912703568daff790ab3f755
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
删除镜像:docker rmi <镜像名称或镜像ID>
(可能需要先 stop、rm 容器)
2 查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 61395b4c586d 3 days ago 187MB
3 创建容器并运行nginx镜像
docker run -d -p 80:80 nginx
- -d 后台运行
- -p 指定端口映射
- 格式为:主机(宿主)端口:容器端口 (运行后输出容器id)*
e9200f16c633f98e945a7afb3f005fe17d22ac193380db81226da18b42ad7770
4 查看正在运行的容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9200f16c633 nginx "/docker-entrypoint.…" 16 minutes ago Up 16 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp upbeat_panini
停止容器: docker stop e920
启动容器: docker start e920
删除容器:docker rm e920
5 进入容器并修改主页
docker exec -it 容器id bash
cd /usr/share/nginx/html
echo 'hello nginx!' > index.html
可以装个Vim:
apt update
apt install vim
nginx 可列出目录: 编辑 /etc/nginx/nginx.conf,在http里面增加
:
autoindex on;autoindex_exact_size off;autoindex_localtime on;
6 根据容器创建新的镜像
docker commit 容器id 新的镜像名称
docker commit e920 newnginx
docker run -d -p 81:80 newnginx
7 通过 Dockerfile 文件构建镜像
- 建立 Dockfile 文件。
cat Dockerfile:
FROM nginx
ADD ./ /usr/share/nginx/html/
- 新建 index.html 文件。
echo "hello nginx2" > index.html
- 用build命令将Dockerfile构建成一个镜像。
docker build -t nginx2 .
- 运行。
docker run -d -p 82:80 nginx2
8 导出镜像
docker save nginx > nginx.tar
9 导入镜像
docker load < nginx.tar
三、其他
1 提示用户没有权限
sudo usermod -aG docker $USER
2 停止所有运行中的容器
docker stop $(docker ps -q)
3 停止并删除所有容器
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
4 删除所有的镜像
docker rmi $(docker images -q)
5 为镜像打上标签
docker tag <镜像ID> <新标签名称>
6 挂载一个文件夹作为网站主目录:
docker run -d -p 82:80 -v $HOME/tmp:/usr/share/nginx/html nginx2