title: docker
categories:
- docker
docker的安装与使用
docker安装(ubuntu)
apt update
apt install docker-ce -y
docker的使用
- 设置开机启动,和运行docker
$ sudo systemctl enable docker
$ sudo systemctl start docker
- 建立docker用户组(docker权限问题)
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
- 基本使用顺序
# 1.拉取镜像
docker pull xxx
# 2.查看镜像
docker images
# 3.查看容器运行状态
docker ps -a
# 4.启动容器
docker run -d xxx -p xxx -v xxx --name xxx xxx镜像
# -d 后台运行
# -p端口映射(可以添加多个):前面个是主机端口号,后面个是容器端口号
-p 80:8000
# -v挂载目录(可以添加多个):前面个是主机目录,后面个是容器目录
-v /home/nginx:/etc/nginx
# --name容器命名
--name xxx
# 完整的例子,启动nginx静态网站容器
docker run -d -p 80:80 -p 443:443 --name $yourname \
-v /home/nginx/nginx:/etc/nginx -v /home/nginx/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/html/dist:/usr/share/nginx/html \
-v /home/nginx/logs:/usr/log/nginx $yourimage
# 以上几个参数我个人比较常用,还有一些其他的,根据需求配置
# -e 这个mysql就要用到,比如
docker run -d -p 3306:3306 --name mysqlvirtual -e MYSQL_ROOT_PASSWORD=123456 -v /home/mysql/data:/var/lib/mysql mysql
# 权限开启(慎用,开发环境无所谓)
--privileged=true
# 自定义网络
--net mynet
# 自定义ip
--ip ${IP}
# 顾名思义,总是重启,还有几个参数,目前没有涉及
--restart=always
# 5.进入容器终端(容器内部极其精简)
docker exec -it 容器 bash
# 6. #查看容器,-f可以跟踪日志 也可以--tail=N,查看倒数第N行
docker logs -f 容器
# 7. 删除容器(-f 强行删 -v 删除容器挂载卷)
docker rm 容器
# 8. 删除镜像(-f 强行删)
docker rmi 镜像
# 这里没有的请看下面!!!!!
- 常用命令(直接网上抄的)
#info|version
docker info #显示docker的系统信息,包括镜像和容器的数量
docker version #显示docker的版本信息。
#帮助命令
docker 命令 --help #帮助命令
#镜像命令
docker images #查看所有本地主机上的镜像 可以使用docker image ls代替
docker search #搜索镜像
docker pull #下载镜像 docker image pull
docker rmi #删除镜像 docker image rm
#容器命令
docker run 镜像id #新建容器并启动
docker ps 列出所有运行的容器 docker container list
docker rm 容器id #删除指定容器
#删除所有容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
#启动和停止容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
#退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
#其他常用命令
docker run -d 镜像名 #后台启动命令
docker logs #查看日志
docker top 容器id #查看容器中进程信息ps
docker inspect 容器id #查看镜像的元数据
docker exec #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker attach # 进入容器正在执行的终端
docker cp 容器id:容器内路径 主机目的路径 #从容器内拷贝到主机上