Docker
2021-10-28 15:07:50 0 举报
AI智能生成
Docker知识脉络,请收藏,持续更新
作者其他创作
大纲/内容
查看容器
docker ps
查看正在运行的容器
docker ps -a
查看所有容器
重命名容器
docker rename <旧容器名称/旧容器ID> <新容器名称/新容器ID>
创建容器
参数
-i
表示运行容器
--name
为创建的容器命名。
-t
创建交互式容器:容器启动后会进入其命令行,分配一个伪终端,退出容器容器停止运行。
-d
创建一个守护式容器:在后台运行(这样创建容器后不会自动登录容器)。
-v
表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件 映射。
注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-p
表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
交互式容器
守护式容器
启动停止
docker start <容器名称/ID>
启动已运行过的容器
docker stop <容器名称/容器ID>
停止正在运行的容器
进入容器
docker exec -it <容器名> /bin/bash
退出容器
exit
文件拷贝
docker cp <需要拷贝的文件/目录> <容器名称>:<容器目录>
linux宿主机 -> 容器内
docker cp <容器名称>:<容器目录> <需要拷贝的文件/目录>
容器内 -> linux宿主机
容器在停止状态下也可以完成文件的拷贝
目录挂载
在创建容器的时候,将宿主机的目录与容器内的目录进行映射,
这样我们就可以通过修改宿主机某个目录的文件从而去影响容器
示例:创建守护式容器
docker run -di -v /usr/local/test:/usr/local/test -- name=mycentos3 centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为CentOS7中的安全模块selinux把权限禁掉了,
需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题。
查看容器ip地址
docker inspect <容器名称/容器ID>
查看容器运行的各种数据
删除容器
docker rm <容器名称/容器ID>
删除指定的容器
docker rm `docker ps -a -q`
删除所有容器
参考资料
Docker菜鸟教程
安装启动
Red Hat 系列
CentOS 7
安装
sudo yum update
sudo yum install -y yum-utils device-mapper-persisten-data lvm2
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
docker -v
设置镜像代理
mkdir /etc/docker
vi /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
启动停止服务
systemctl start docker
镜像命令
查看镜像
docker images
搜索镜像
docker search <镜像名>
从网络中查找需要的镜像
拉取镜像
docker pull <镜像名>:<版本号>
# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:
删除镜像
docker rmi <镜像ID>
删除指定镜像
docker rmi `docker images -q`
删除所有镜像
Docker远程加密访问(没成功)
参考资料
Intellij IDEA快速实现Docker镜像部署
tmd 这个docker连接不需要密码 被入侵删光了 重装系统才解决 下面是加密连接
在IDEA中实现一键部署到服务器(附ssl连接加密)
这个解决了下面那个链接里ip无法访问的问题
Docker 开启SSL证书加密远程链接
加密设置
Step 01
先在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中
mkdir -p /usr/local/ca && cd /usr/local/ca
Step 02
创建根证书RSA私钥
openssl genrsa -aes256 -out ca-key.pem 4096
Step 03
创建CA证书
openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -out ca.pem
Step 04
创建服务端私钥
openssl genrsa -out server-key.pem 4096
Step 05
创建服务端签名请求证书文件
openssl req -subj "/CN=自己的外网ip" -sha256 -new -key server-key.pem -out server.csr
Step 06
配置白名单
echo subjectAltName = IP:自己的外网ip,IP:0.0.0.0 >> extfile.cnf
echo extendedKeyUsage = serverAuth >> extfile.cnf
Step 07
创建签名生效的服务端证书文件
openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
Step 08
创建客户端私钥
openssl genrsa -out key.pem 4096
Step 09
创建客户端签名请求证书文件
openssl req -subj "/CN=client" -new -key key.pem -out client.csr
Step 10
创建extfile.cnf的配置文件
echo extendedKeyUsage=clientAuth > extfile.cnf
Step 11
创建签名生效的客户端证书文件
openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
Step 12
删除多余文件
rm -rf ca.srl client.csr extfile.cnf server.csr
加密设置
Step 01
先在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中
mkdir -p /usr/local/ca && cd /usr/local/ca
另一个目录也行
在服务器中新建目录/etc/docker,并切换到该目录下
mkdir /etc/docker && cd /etc/docker
Step 02
创建根证书RSA私钥
openssl genrsa -aes256 -out ca-key.pem 4096
Step 03
创建CA证书
openssl req -new -x509 -days 1000 -key ca-key.pem -sha256 -subj "/CN=*" -out ca.pem
Step 04
创建服务端私钥
openssl genrsa -out server-key.pem 4096
Step 05
创建服务端签名请求证书文件
openssl req -subj "/CN=*" -sha256 -new -key server-key.pem -out server.csr
Step 06
创建签名生效的服务端证书文件
openssl x509 -req -days 1000 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
Step 07
创建客户端私钥
openssl genrsa -out key.pem 4096
Step 08
创建客户端签名请求证书文件
openssl req -subj "/CN=client" -new -key key.pem -out client.csr
Step 09
创建extfile.cnf的配置文件
echo extendedKeyUsage=clientAuth > extfile.cnf
Step 10
创建签名生效的客户端证书文件
openssl x509 -req -days 1000 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf
Step 11
删除多余文件
rm -rf ca.srl client.csr extfile.cnf server.csr
服务器Docker加密配置
Step 01
编辑docker.service配置文件
vim /lib/systemd/system/docker.service
找到ExecStart = 开头的一行代码,将其替换
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem
Step 02
刷新配置,重启Docker
systemctl daemon-reload && systemctl restart docker
服务端Docker不加密配置(不要用)
Docker开启远程访问
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重载配置文件
systemctl daemon-reload
重启服务
systemctl restart docker.service
客户端配置登录
参考资料
OpenSSL主配置文件openssl.cnf
x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs 解决
TLS加密远程连接Docker
有解决不能通过ip访问远程docker的问题
Step 01
将服务器/etc/docker目录下的ca.pem、cert.pem、key.pem三个文件复制到客户端
Docker Hub
参考资料
Docker 如何制作自己的镜像、docker hub镜像拉取、上传
0 条评论
下一页