Docker
常见参数
资源限制
文件夹映射
安装docker
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
 
 
 yum remove docker docker-client docker-client-latest docker-common \
 docker-latest docker-latest-logrotate docker-logrotate docker-engine
 
 
 echo " === install yum-utils === "
 yum install -y yum-utils
 
 
 yum-config-manager \
 --add-repo \
 https://download.docker.com/linux/centos/docker-ce.repo
 
 
 yum install docker-ce docker-ce-cli containerd.io -y
 systemctl start docker.service
 systemctl enable docker.service
 docker version
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 
docker 换源
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | cat >>/etc/docker/daemon.json <<EOF{
 "registry-mirrors":[
 "http://docker.mirrors.ustc.edu.cn",
 "http://hub-mirror.c.163.com",
 "http://registry.docker-cn.com"
 ] ,
 "insecure-registries":[
 "docker.mirrors.ustc.edu.cn",
 "registry.docker-cn.com"
 ]
 }
 EOF
 
 
 service docker restart
 
 | 
启docker生效
service docker restart
镜像
就是类似于虚拟机中的iso文件 # 容器 就是运行中的系统
tar文件
将一个镜像保存为tar文件 # Dockerfile 写构建的步骤来制作镜像 # 仓库 保存了很多镜像 # 免费使用 点这里
--link myng:myng
将另一个容器储存为域名,其实是在/etc/hosts中加入了一行映射 # 复杂的Docker 比方你有一个nginx服务,php服务,mysql服务,nginx依赖php,php依赖mysql,这个依赖关系导致我们需要先创建mysq,然后创建php。这就很麻烦,部署、重启啊很麻烦的。 # docker-compose  | 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | version: "3"services:
 nginx:
 image: nginx
 ports:
 - 80:80
 volumes:
 - /root/html:/usr/share/nginx/html
 - /root/conf/nginx.conf:/etc/nginx/nginx.conf
 php:
 image: php
 volumes:
 - /root/html:/var/www/html
 mysql:
 images: mysql
 enviroment:
 - MYSQL_ROOT_PASSWORD=123456
 
 | 
查看防火墙状态(若防火墙为关闭状态,可跳过防火墙有关设置):
sudo firewall-cmd --state
若返回runging,则防火墙为开启状态,查看防火墙是否开启ip地址转发(ip地址伪装):
sudo firewall-cmd --query-masquerade
若返回no,则输入以下命令开启ip地址转发:
sudo firewall-cmd --add-masquerade --permanent
然后输入以下命令使修改生效:
sudo firewall-cmd --reload
如果有一天发现docker把空间占满了,我们可以先暂停docker,然后使用软连接将/var/lib/docker放置到其他地方
Docker临时容器妙用
| 12
 3
 
 | docker run -it --rm --net=host centos:centos8 bashyum install vim wget lrzsz -y
 
 
 | 
小内存
| 1
 | -m 50M --memory-swap=1024M \
 | 
Docsker 自动更新容器
| 12
 3
 4
 5
 
 | docker run -d \--name watchtower \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -m 50M --memory-swap=1024M \
 v2tec/watchtower
 
 | 
Docker的坑
千万不要在docker启动以后重启防火墙!!!!!!
Docker 命令行
docker非常有用,很多时候你不需要下载那些奇怪的东西,你只需要一个别名,就能使用下面这些应用
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | alias busybox='docker run -it --rm -v $PWD:$PWD -w $PWD busybox'alias centos='docker run -it --rm -v $PWD:$PWD -w $PWD centos:8'
 alias dot='docker run -it --rm -v $PWD:$PWD -w $PWD fightinggg/graphviz dot'
 alias rar='docker run -it --rm -v $PWD:$PWD -w $PWD fightinggg/rar rar'
 alias unrar='docker run -it --rm -v $PWD:$PWD -w $PWD fightinggg/rar unrar'
 alias java8='docker run -it --rm -v $PWD:$PWD -w $PWD openjdk:8 java'
 alias mvn8='docker run -it --rm -v $HOME/.m2:/root/.m2 -v $PWD:$PWD -w $PWD maven:3.8.1-jdk-8 mvn'
 alias java='docker run -it --rm -v $PWD:$PWD -w $PWD openjdk java'
 alias mvn='docker run -it --rm -v $HOME/.m2:/root/.m2 -v $PWD:$PWD -w $PWD maven mvn'
 alias jpegoptim='docker run -it --rm -v $PWD:$PWD -w $PWD fightinggg/jpegoptim jpegoptim'
 alias tree='docker run -it --rm -v $PWD:$PWD -w $PWD fightinggg/tree tree'
 
 | 
参考
10分钟,快速学会docker
实战~如何组织一个多容器项目docker-compose