usage-of-docker

First Post:

Last Update:

Word Count:
1.1k

Read Time:
4 min

Docker Hub (需要配置加速器)

关闭 SELINUX 服务
SELINUX是CentOS系统捆绑的安全服务程序, 因为安全策略过于严格, 所以建议关闭这个服务
修改 /etc/selinux/config文件, 设置SELINUX=disabled
安装:
Centos:

1
2
3
4
yum install docker -y //-y代表默认安装
service docker start
service docker stop
service docker restart

Debain:

1
2
sudo apt install docker
sudo apt install docker-compose

CockerHub: 是Docker公共镜像库, 为用户提供了大量的镜像文件
https://hub.docker.com/
由于国内网络访问DockerHub很慢, 无法下载镜像文件,我们可以使用Docker加速器

网易镜像中心:https://c.163.com/hub#/m/home/
docker pull hub.c.163.com/library/tomcat:latest

docker 中科大源: https://lug.ustc.edu.cn/wiki/mirrors/help/docker

安装加速器:
curl -sSl https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
//启动加速器
./acc.sh {“registry-mirrors”: [“http://f1361db2.m.daocloud.io"]}

修改Docker配置文件,去掉逗号
vim /etc/docker/daemon.json
{“registry-mirrors”: [“http://f1361db2.m.daocloud.io"]}

安装python镜像:

docker pull python:3.8

查看镜像:

docker images

查看镜像的详细信息:

docker inspect python:3.8

将镜像导出

docker save python:3.8 > /root/python.tar

删除镜像

docker rmi python:3.8

导入镜像

docker load < /root/python.tar

创建docker容器:

it代表创建一个容器, 后面需要交互, bash交互
docker run -it –name=p1 python:3.8 bash

查看容器

docker ps -a

启动容器

容器名为p1
docker start p1

暂停容器:

docker pause p1

取消暂停容器:

docker unpause p1

使用bash进入p1容器

docker exec -it p1 bash

查看容器详细信息

docker inspect p1

停止容器

docker stop p1

删除容器

必须先停止容器
docker rm p1

Docker 网络

是Docket内的内部网络

默认情况下, Docker环境会给容器分配动态的IP地址,这就导致下次启动容器的时候,IP地址就变了
可以单独创建Docker内部的网段(172.18.0.x)
172.18.0.0/16 表示网络码占16位,也就是说该网络上可以有65534个主机(2^16-2)IP范 围:172.18.0.1~172.18.255.254 172.18.255.255是广播地址,不能被主机使用.设置IP地址的时候:172.18.x.y 子网掩码:255.255.0.0
mynet 是自定义名字

docker network create –subnet=172.18.0.0/16 docker_net

解除容器绑定的网络 网络名词docker_net 容器名称 test

1
sudo docker network disconnect docker_net test

删除原先的网络

1
sudo docker network rm docker_net

创建新的网络

1
sudo docker network create --subnet=192.168.222.0/24 mynetwork

连接新的网络

1
sudo docker network connect mynetwork test 

重新启动容器

1
sudo docker container restart test

注意:

删除某个网段, 删除网段之前, 必须先删除容器

1
docker network rm mynet

创建容器并指定ip, 而 172.18.0.1是网关地址, 是不能使用的
docker run -it –net mynet –ip 172.18.0.2 python:3.8 bash

查看网段

docker network ls

删除mynet网段

docker network rm mynet

指定某个ip创建容器

docker run -it –name=p1 –net mynet –ip 172.18.0.2 python:3.8 bash

容器端口映射

默认情况下, 除了宿主机之外,任何主机无法访问远程Docker容器
通过端口映射,可以吧容器端口映射到宿主机的端口,这样其他主机就能访问了
映射到宿主机的端口,不需要设置防火墙规则,便可以使用
将容器的5000端口映射到宿主机的9500端口
docker run -it -p 9500:5000 python:3.8 bash

映射多个端口

docker run -it -p 9500:5000 -p 9600:3306 python:3.8 bash

目录挂载在技术

为了能把一部分业务数据保存在Docker环境之外,或者把宿主机的文件传入容器,所以
需要给容器挂载宿主机的目录
Docker环境只支持目录挂载,不支持文件挂载, 且一个容器可以挂载多个目录

将宿主机的/root/test目录挂载到容器的/root/project 目录中
docker run -it -v /root/test:/root/project –name=p1 python:3.8 bash

给docker添加用户组

1
2
3
4
sudo groupadd docker    #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
打赏点小钱
支付宝 | Alipay
微信 | WeChat