本文是关于 Docker 的入门使用,若想进一步提升,欢迎学习Docker 使用超详细 (精通级)
一、安装Docker(Ubuntu)
帮助文档:Docker 官方安装文档(Ubuntu)
1. 卸载旧的 Docker 版本:
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 利用 Docker 仓库安装,更新 apt 并安装需要的依赖库,用于通过 HTTPS 来获取仓库:
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
3. 添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
sudo apt-key fingerprint 0EBFCD88
4. 使用以下指令设置稳定版仓库:
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"
5. 安装最新版本的Docker Engine-Community 和 containerd(也可安装指定版本)
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
6. 测试Docker 是否安装成功
sudo docker run hello-world
二、Docker 镜像常用命令
1. 显示 Docker 的版本信息:
docker version
2. 显示 Docker 的系统信息,包括镜像和容器的数量:
docker info
3. 查看本地主机上的所有镜像:
docker images
REPOSITORY:镜像的仓库源
IMAGE ID:镜像的ID
CREATED:镜像创建的时间
SIZE:镜像的大小
可选项:
-a # 列出所有的镜像
-q # 只显示镜像的ID
-aq # 只显示所有镜像的ID
4. 搜索镜像:
docker search
如:
docker search mysql # 搜索mysql镜像
docker search mysql --filter=STARS=3000 # 搜索 STARS 大于3000的 mysql 镜像
5. 下载镜像:
docker pull 镜像名[:tag] # 不加 tag,默认下载最新版的 latest
如:
docker pull mysql:5.7 # 下载 mysql(5.7版本) 镜像
6. 删除镜像:
docker rmi -f 镜像ID # 删除指定的镜像
docker rmi -f 镜像ID_1 镜像ID_2 镜像ID_3 # 删除指定的多个镜像
docker rmi -f $(docker images -aq) # 删除全部的镜像
三、Docker容器常用命令
有了镜像才可以创建容器
1. 创建容器:
docker run [可选参数] image
如:
docker run -itd --name python_gfh python:3.6.8 /bin/bash
参数说明:
--name # 指定容器名字
-d # 后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p # 指定容器的端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口 # 常用
-p 容器端口
-P # 随机指定端口
测试: 创建并进入容器:
docker run -it ubuntu:16.04 /bin/bash # 创建并进入容器 ubuntu
2. 从容器中退回宿主机:
exit # 直接退出并停止容器
ctrl + P + Q # 退出但不停止容器
3. 列出所有运行的容器:
docker ps # 列出当前正在运行的容器
docker ps -a # 列出当前正在运行的容器+历史运行过的容器
docker ps -n=? # 列出最近创建的容器,?表示个数
docker ps -q # 只显示容器编号
4. 删除容器:
docker rm 容器ID # 删除指定的容器,不能删除正在运行的容器
docker rm -f 容器ID # 强制删除
5. 启动、关闭和重启容器的操作:
docker start 容器ID # 启动指定容器
docker restart 容器ID # 重启指定容器
docker stop 容器ID # 停止当前正在运行的容器
docker kill 容器ID # 强制停止当前正在运行的容器
四、Docker容器常用命令
1. 查看容器中进程信息
docker top 容器ID # 查看容器中进程信息
2. 查看容器元数据
docker inspect 容器ID # 查看容器中进程信息
3. 进入正在运行的容器
方式一:进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it 容器ID bashShell
方式二:进入容器正在执行的终端,不会启动新的进程
docker attach 容器ID
4. 拷贝容器内文件到宿主机上(在容器外执行)
docker cp 容器ID:容器内路径 宿主机文件路径 # 容器ID换成容器名也可以
5. 拷贝宿主机的文件到容器内(在容器外执行)
docker cp 宿主机文件路径 容器ID:容器内路径 # 容器ID换成容器名也可以
五、部署 nginx Docker
1. 搜索 nginx 的 Docker 镜像(可以去Docker Hub搜索)
docker search nginx
2. 下载 nginx Docker 镜像
docker pull nginx # 默认下载latest
3. 运行测试
docker run -itd --name nginx_test -p 3344:80 nginx # 可通过宿主机的3344端口访问docker的80端口
部署成功!
六、Portainer
Portainer一个轻量级的 Docker 环境管理 UI。
docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /Users/lee/dev/docker_file/portainer/data:/data docker.io/portainer/portainer
七、提交(commit)镜像
Docker 镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。
命令:
docker commit -m="提交的描述信息" -a="作者" 容器ID 目标镜像名:[TAG]
如:1、启动一个默认的nginx容器;
2、在该容器中做了部分修改;
3、将操作过的 nginx 容器通过 commit 提交为一个镜像。
docker commit -m="nginx_vue" -a="fuhong.gao" a8a71b91e24c nginx_vue:1.0
博主水平有限,若发现文中存在问题,欢迎留言指正!
学习之路永无止境!