代码改变世界

docker安装nginx

2020-09-04 17:19  天心PHP  阅读(359)  评论(0编辑  收藏  举报

一、卸载之前的docker

$sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

二、docker-ce安装

$sudo yum install -y yum-utils device-mapper-persistent-data lvm2  #安装扩展包
$sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #设置镜像
$sudo yum makecache fast #更新索引
$sudo yum install docker-ce docker-ce-cli containerd.io  安装

启动docker-ce

systemctl start docker 

如果出错:systemctl start docker.service
即在/usr/lib/systemd/system/docker.socket 文件中 缺少了 PartOf=docker.service

[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
 
docker  version 查看docker版本信息

测试

docker run hello-world

会去仓库下载镜像输出 Hello from Docker!

[root@localhost system]# docker images  #查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 months ago 13.3kB

卸载docker

# yum remove docker-ce docker-ce-cli containerd.io  卸载依赖
# rm -rf /var/lib/docker 删除资源

阿里云镜像加速  

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 四、docker常用命令

docker  version 查看docker版本信息
docker images	查看所有镜像	docker images -a:显示所有的  docker images -q:之显示ID
docker search 镜像 搜索镜像 --filter 过滤 docker search mysql --filter=STARS=5000 搜索mysql收藏大于五千的
docker pull 镜像 下载镜像 docker pull mysql:5.7 下载mysql5.7版本镜像 docker ps
空表示当前运行中的容器 docker ps
-a 查看曾经运行过的容器 docker ps -a
-n=? 最近创建的容器 ?表示个数
-q 只显示容器的编号 docker rmi 镜像ID 删除某个镜像 docker rmi 383401d398fa docker rmi $(docker images -q) 删除所有镜像 docker rmi $(docker images -q) docker stop 容器 ID 停止某个容器 docker stop 383401d398fa docker rm 容器 ID 删除某个容器 docker rm 383401d398fa
docker start ID 启动容器 docker restart 容器 ID 重启某个容器 docker restart 383401d398fa docker stop $(docker ps -a -q) 停止所有容器 docker stop $(docker ps -a -q)
docker kill ID 杀掉容器
docker rm ID #不能删除正在运行的容器 如果要强制删除加 -f 强制删除 docker rm $(docker ps -a -q) 删除所有容器 docker rm $(docker ps -a -q)
docker ps -a -q | xargs docker rm 删除所有容器 docker build -t springboot . 通过Dockerfile构建镜像 docker build -t springboot .
docker run [参数] image
--name='name' #名称
-d #后台运行
-it #交互运行 可以进容器查看内容
-p #知道容器端口 -p 8080:8080 主机端口:容器端口
-P #随机指定端口
docker run -itd --net=host -v /opt/:/opt/ --name app spring:latest 通过脚本构建容器并启动 docker logs -f -t --tail 100 容器 ID 查看日志 docker logs -f -t --tail 100 pay-master docker history 镜像名 查看镜像构建历史 docker history mongo
进入容器 docker exec -it -u root 容器ID bash 进入容器 docker exec -it -u root jenkins bash (进入容器开启了新的终端)
docker attach 容器ID #进入容器 (进入容器正在执行的终端) Ctrl+d 退出docker容器 Ctrl+d exit 停止并退出docker容器 exit
Ctrl+P+Q 不停止退出
docker top ID #查看容器内部进程
docker inspect ID #查看容器信息
docker cp 容器ID:/home/aaa.txt /home #吧容器home下面的aaa.txt 拷贝到/home下面
docker stats #查看docker运行状态
docker commit 提交容器成为一个新的副本 # 命令和git原理类似 docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
docker volume ls #查看本地的挂载
docker volume inspect 具名挂载名称 #查看挂载路径
docker history 容器ID #变更历史
docker tag 容器id 新名字 #改变镜像名称
docker network ls #查看docker网络
docker  pull centos  #下载镜像
[root@localhost ~]# docker run -it centos /bin/bash  #启动镜像并进入 
[root@9a17dbf74d0f /]# ls  容器里面很多命令不完善
bin etc lib	lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr

[root@9a17dbf74d0f /]# exit  退出容器

Ctrl+P+Q :不停止容器 退出容器

[root@e95be7079163 /]# [root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e95be7079163 centos "/bin/bash" 49 seconds ago Up 48 seconds romantic_gauss

[root@localhost ~]# docker run -d centos  #后台启动centos
1d7b9237831a156c94a2be51b401a8310491adec2b404a434ef505f5d0f4675e
[root@localhost ~]# docker ps   #发现停止了(后台启动必须要有一个前台进程,docker发现没有应用就会停止)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

 

安装MYSQL

docker pull mysql:5.7
docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7 安装mysql docker exec -it 容器ID /bin/bash 进入容器 mysql -u root -p 密码 #登录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码'; flush privileges; 清除缓存,重新加载权限

docker安装的镜像liunx命令少了很多,因为阿里云的镜像是最小安装,剔除了一些不必要的东西,保证最小安装

Portainer : docker的图形化管理工具

查找Docker Hub上的nginx镜像

[root@localhost /]# docker search nginx

docker安装nginx
  • 拉取官方的镜像

    [root@localhost /]# docker pull nginx

    docker安装nginx
  • 查看镜像

    [root@localhost /]# docker images nginx

    docker安装nginx
  • 使用nginx默认的配置来启动一个nginx容器

    [root@localhost /]# docker run -d -p 80:80 --name nginx nginx:latest

    docker安装nginx
  • 创建nginx目录

    [root@localhost /]# mkdir -p /usr/local/nginx/www /usr/local/nginx/logs /usr/local/nginx/conf

    docker安装nginx
  • 拷贝容器内nginx默认配置文件到本地nginx的conf目录

    [root@localhost /]# docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf

    docker安装nginx
  • 停止nginx容器

    [root@localhost /]# docker stop nginx

    docker安装nginx
  • 删除nginx容器

    [root@localhost /]# docker rm nginx

    docker安装nginx
  • 创建并运行nginx容器

    [root@localhost /]# docker run -d -p 80:80 --name nginx -v /usr/local/nginx/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/logs:/var/log/nginx --restart=always nginx:latest

  • 查看创建的容器

    [root@localhost /]# docker ps | grep nginx

     

     

    docker安装nginx
  • 查看容器的ip地址

    [root@localhost /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' nginx

    docker安装nginx
  • 查看firewalld状态

    [root@localhost /]# systemctl status firewalld

    docker安装nginx
  • 开启firewalld(可选,未开启时执行)

    [root@localhost /]# systemctl start firewalld

    docker安装nginx
  • 开放80端口

    [root@localhost /]# firewall-cmd --zone=public --add-port=80/tcp --permanent

    docker安装nginx
  • 重新载入

    [root@localhost /]# firewall-cmd --reload

    docker安装nginx
  • 查看是否生效

    [root@localhost /]# firewall-cmd --zone=public --query-port=80/tcp

    docker安装nginx