docker 及 docker-compose 的快速安装和简单使用https://www.cnblogs.com/morang/p/9501223.html


最后用pip安装docker-compose是最快的!

docker-compose教程(安装,使用, 快速入门)
https://blog.csdn.net/pushiqiang/article/details/78682323

docker 常用基础命令

docker 常用基础命令

https://segmentfault.com/a/1190000010219967

Docker笔记—基础篇:

https://xz.aliyun.com/t/1791

docker基础命令

https://www.jianshu.com/p/146d6a991025

{


"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}

搭建

Docker Compose

# Download the latest version of the vulhub 
git clone https://github.com/vulhub/vulhub.git

# Entry vulnerability directory
cd /path/to/vuln/

# Compile (optional)
docker-compose build

# Run
docker-compose up -d

Build Image

docker-compose build

Run Image

docker-compose up -d
open http://localhost:3000
docker-compose images
docker-compose ps -a

Docker

Build Image

docker build -t dockerflask:18.04 .

Run Image

docker run -p 3000:80 dockerflask
open http://localhost:3000

-d 不会进入容器
docker run -dp 3000:80 id号

When adding new pip packages be sure to update your requirements.txt. These changes also requires rebuilding of the Docker image.

docker pull 从远程pull镜像

-t :指定要创建的目标镜像名

. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec

docker build -t yourname:tag .

docker run -it ubuntu /bin/bash 把镜像启动起来
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
exit 退出容器

-d 不会进入容器
docker run -dp 3000:80 name:tag


docker start|stop|rm little:1 启动容器

docker attach|exec 1e560fca3906 进入容器
-i: 交互式操作。
-t: 终端。
docker attach|exec -it 1e560fca3906 /bin/bash | /bin/sh
有点环境 像alpine不支持bash

调试

查看镜像

docker images -a

docker start 容器ID或容器名
\1. 先查看已经暂停的容器实例信息
\2. 通过docker start 59ec 启动容器
\3. 通过docker ps 查看当前启动的容器
具体操作如下图

docker ps -a

二、停止一个正在运行的容器
1、docker stop 此方式常常被翻译为优雅的停止容器

docker stop 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker stop -t=60 容器ID或容器名

2、docker kill

docker kill 容器ID或容器名 :直接关闭容器

三、重启一个容器

docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器
\1. 首先 docker ps 查看正在运行的容器信息,显示2分钟前启动运行
\2. docker restart 59ec 重启容器
\3. 再次 docker ps 查看容器信息 显示 2秒前启动运行

1、删除容器实例

docker rm 容器ID或容器名
\1. 先 docker ps -a 寻找已经停止运行的实例
2.docker rm 59ec 删除实例
3.docker ps -a 查看实例已经删除
具体操作如下图

、删除镜像

docker rmi 容器ID或容器名
\1. 首先 docker images 查看所有镜像
\2. 然后 docker rmi fe200 删除镜像
3.再次通过 docker images 查看镜像 发现已经删除
具体操作如下图

如果删除的镜像已经产生了容器实例(run过)不容器实例是否启动都会提示无法删除,因为被占用。这时需要先删除容器实例或添加删除参数
参数
-f :强制删除,一般用于被占用的删除
–no-prune :不移除该镜像的过程镜像,默认移除;(ps (⊙﹏⊙) 不是很理解这个参数查了几次没理解,有知道的欢迎评论告知我,后期知道后我将更新上去)

使用Docker搭建Postgresql数据库,及设置远程访问

交互式的

一、拉取Postgresq镜像
docker pull postgres

二、构建镜像容器
docker run -it --name postgres --restart always -e POSTGRES_PASSWORD='abc123' -e ALLOW_IP_RANGE=0.0.0.0/0 -v /home/postgres/data:/var/lib/postgresql -p 55433:5432 -d postgres
–name : 自定义容器名称
POSTGRES_PASSWORD:数据库密码
-e ALLOW_IP_RANGE=0.0.0.0/0,这个表示允许所有ip访问,如果不加,则非本机 ip 访问不了
-v :进行映射,本地目录:容器内路径
-p:映射端口,宿主机端口:容器端口
最后是 镜像名称:端口号
三、进入postgres容器

docker exec -it postgres bash


四、切换当前用户,再登录数据库

将当前root切换成postgres
su postgres

输入用户名,密码再命令执行完后,再根据提示输入

psql -U postgres -W

五、设置远程访问许可(很重要)

共需要修改两个配置文件:pg_hba.conf、postgresql.conf,步骤分别如下:

docker端口映射或启动容器时报错Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen

解决:

重启docker服务后再启动容器
systemctl restart docker
docker start foo

Docker docker 搭建 mysql

https://testerhome.com/topics/20900

ctfd搭建

平台用 docker搭建!
再上 docker题目!

写dockefile
docker - compose