博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目——多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试、就业、技术问题都可给在文章后留言。
本文是关于 Docker 的入门使用,若想进一步提升,欢迎学习Docker 使用超详细 (精通级)
帮助文档:Docker 官方安装文档(Ubuntu)
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
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
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
docker version
docker info
docker images
REPOSITORY:镜像的仓库源
IMAGE ID:镜像的ID
CREATED:镜像创建的时间
SIZE:镜像的大小
可选项:
-a # 列出所有的镜像
-q # 只显示镜像的ID
-aq # 只显示所有镜像的ID
docker search
如:
docker search mysql # 搜索mysql镜像
docker search mysql --filter=STARS=3000 # 搜索 STARS 大于3000的 mysql 镜像
docker pull 镜像名[:tag] # 不加 tag,默认下载最新版的 latest
如:
docker pull mysql:5.7 # 下载 mysql(5.7版本) 镜像
docker rmi -f 镜像ID # 删除指定的镜像
docker rmi -f 镜像ID_1 镜像ID_2 镜像ID_3 # 删除指定的多个镜像
docker rmi -f $(docker images -aq) # 删除全部的镜像
有了镜像才可以创建容器
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
exit # 直接退出并停止容器
ctrl + P + Q # 退出但不停止容器
docker ps # 列出当前正在运行的容器
docker ps -a # 列出当前正在运行的容器+历史运行过的容器
docker ps -n=? # 列出最近创建的容器,?表示个数
docker ps -q # 只显示容器编号
docker rm 容器ID # 删除指定的容器,不能删除正在运行的容器
docker rm -f 容器ID # 强制删除
docker start 容器ID # 启动指定容器
docker restart 容器ID # 重启指定容器
docker stop 容器ID # 停止当前正在运行的容器
docker kill 容器ID # 强制停止当前正在运行的容器
docker top 容器ID # 查看容器中进程信息
docker inspect 容器ID # 查看容器中进程信息
方式一:进入容器后开启一个新的终端,可以在里面操作(常用)
docker exec -it 容器ID bashShell
方式二:进入容器正在执行的终端,不会启动新的进程
docker attach 容器ID
docker cp 容器ID:容器内路径 宿主机文件路径 # 容器ID换成容器名也可以
docker cp 宿主机文件路径 容器ID:容器内路径 # 容器ID换成容器名也可以
docker search nginx
docker pull nginx # 默认下载latest
docker run -itd --name nginx_test -p 3344:80 nginx # 可通过宿主机的3344端口访问docker的80端口
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
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
博主水平有限,若发现文中存在问题,欢迎留言指正!