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 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
-
拉取官方的镜像
[root@localhost /]# docker pull nginx
-
查看镜像
[root@localhost /]# docker images nginx
-
使用nginx默认的配置来启动一个nginx容器
[root@localhost /]# docker run -d -p 80:80 --name nginx nginx:latest
-
创建nginx目录
[root@localhost /]# mkdir -p /usr/local/nginx/www /usr/local/nginx/logs /usr/local/nginx/conf
-
拷贝容器内nginx默认配置文件到本地nginx的conf目录
[root@localhost /]# docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf
-
停止nginx容器
[root@localhost /]# docker stop nginx
-
删除nginx容器
[root@localhost /]# docker rm 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
-
查看容器的ip地址
[root@localhost /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' nginx
-
查看firewalld状态
[root@localhost /]# systemctl status firewalld
-
开启firewalld(可选,未开启时执行)
[root@localhost /]# systemctl start firewalld
-
开放80端口
[root@localhost /]# firewall-cmd --zone=public --add-port=80/tcp --permanent
-
重新载入
[root@localhost /]# firewall-cmd --reload
-
查看是否生效
[root@localhost /]# firewall-cmd --zone=public --query-port=80/tcp