docker安装nginx
# 第1步,去DockerHub查看nginx镜像仓库及相关信息
# 第2步,拉取Nginx镜像
docker pull dp
# 第3步,查看镜像
docker images
# 结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 16 months ago 141MB
mysql latest 3218b38490ce 17 months ago 516MB
# 第4步,创建并允许Nginx容器
docker run -d --name nginx -p 80:80 nginx
# 第5步,查看运行中容器
docker ps
# 也可以加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
# 第6步,访问网页,地址:http://虚拟机地址
# 第7步,停止容器
docker stop nginx
# 第8步,查看所有容器
docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
# 第9步,再次启动nginx容器
docker start nginx
# 第10步,再次查看容器
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
# 第11步,查看容器详细信息
docker inspect nginx
# 第12步,进入容器,查看容器内目录
docker exec -it nginx bash
# 或者,可以进入MySQL
docker exec -it mysql mysql -uroot -p
# 第13步,删除容器
docker rm nginx
# 发现无法删除,因为容器运行中,强制删除容器
docker rm -f nginx
docker run -d \
--name nginx \
-p 80:80 \
-p 18080:18080 \
-p 18081:18081 \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
--network hm-net \
nginx
docker run -d \
--name nginx \
-p 18080:18080 \
-p 18081:18081 \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
--network hmall \
nginx
docker安装MySQL
1、在课前资料提供好了MySQL的一个目录:
2、其中有MySQL的配置文件和初始化脚本:
3、我们将其复制到虚拟机的/root
目录。如果/root
下已经存在mysql
目录则删除旧的,如果不存在则直接复制本地的:
4、然后创建一个通用网络:
docker network create hanxue-net
5、使用下面的命令来安装MySQL:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
--network hm-net\
mysql
MySQL的客户端工具连接MySQL
6、解决客户端问题:
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
get-server-public-key #添加公钥
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[root@localhost ~]# ls
anaconda-ks.cfg mysql nacos nacos.tar nginx.tar uO?ٱ?? uO?ٱ???
[root@localhost ~]# cd mysql/
[root@localhost mysql]# ls
conf data init
[root@localhost mysql]# cd conf/
[root@localhost conf]# ls
hm.cnf
[root@localhost conf]# cat hm.cnf
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
get-server-public-key
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
[root@localhost conf]# ls
hm.cnf
[root@localhost conf]#
1、docker安装jdk
[root@localhost ~]# docker load -i jdk.tar
2c7e7ab2260a: Loading layer [==================================================>] 119.3MB/119.3MB
9ad2165feb02: Loading layer [==================================================>] 17.18MB/17.18MB
92903c3857f8: Loading layer [==================================================>] 17.87MB/17.87MB
1736ab871b32: Loading layer [==================================================>] 12.18MB/12.18MB
6f8e4cb95a88: Loading layer [==================================================>] 3.584kB/3.584kB
41080a0c646f: Loading layer [==================================================>] 141.8MB/141.8MB
Loaded image: openjdk:11.0-jre-buster
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nacos/nacos-server v2.1.0-slim 49addbd025a1 19 months ago 322MB
nginx latest 605c77e624dd 23 months ago 141MB
mysql latest 3218b38490ce 23 months ago 516MB
openjdk 11.0-jre-buster 57925f2e4cff 24 months ago 301MB
2、docker自定义镜像
#构建镜像 docker build -t 镜像名 Dockerfile所在目录
[root@localhost ~]# docker build -t docker-demo .
3、运行自定义镜像
[root@localhost demo]# docker run -d --name hm -p 8080:8080 docker-demo
#dd 日志
[root@localhost demo]# docker logs -f dd #查看日志
#创建一个网络
docker network create
#查看所有网络
docker network ls
#删除指定网络
docker network rm
#清除未使用的网络
docker network prune
#使指定容器连接加入某网络
docker network connect
#使指定容器连接离开某网络
docker network disconnect
#查看网络详细信息
docker network inspect
docker安装图形化界面
1. 搜索portainer镜像
docker search portainer
2.拉取portainer镜像
docker pull portainer/portainer-ce
3. 启动portainer容器
# 启动镜像
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /dockerData/portainer:/data --restart=always --name portainer portainer/portainer-ce:latest
-
p: 指定宿主机端口和容器端口 portainer默认端口是9000
-
v: 目录映射,将/var/run/docker.sock映射到容器中,用于访问Docker的守护进程,控制Docker。/dockerData/portainer保存Portainer的配置信息。
–restart=always: 代表在容器退出时总是重启容器,还有其他几种重启策略:no、on-failure、on-failuer:n、unless-stopped
- -p 1126:9000 端口映射默认为9000,映射为1126
- portainer 镜像名字
4. docker ps查看容器
-p 9000:9000 端口映射默认为9000,映射为9000
portainer/portainer 镜像名字
# 查看日志
docker logs -f portainer
5.启动完成后,访问http://ip:9000
首次登录,需要你创建管理员admin的密码,设置后登录
二次登录时 admin 1234578
docker部署docker.ui工具
docker.ui介绍
1.docker.ui简介
DockerUI是一个易用且轻量化的 Docker 管理工具,透过 Web 界面的操作,更方便对于 Docker 指令不熟悉的用户更容易操作 Docker 。
2.docker.ui功能
- Docker主机管理:数据卷管理,镜像管理,容器管理,构建管理,仓库配置管理,网络配置管理
- Docker Swarm集群管理:集群概要信息,节点管理,Service管理,任务管理,密码管理,配置管理
3.检查本地docker环境
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]#
4.检查docker版本
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 24.0.7
API version: 1.43
Go version: go1.20.10
Git commit: afdd53b
Built: Thu Oct 26 09:11:35 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.20.10
Git commit: 311b9ff
Built: Thu Oct 26 09:10:36 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.24
GitCommit: 61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
runc:
Version: 1.1.9
GitCommit: v1.1.9-0-gccaecfc
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@localhost ~]#
5.下载docker.ui镜像
从dockerhub拉取docker.ui镜像,版本选择1.0.1,也可以选择最新版本latest。
docker pull joinsunsoft/docker.ui:1.0.1
[root@localhost ~]# docker pull joinsunsoft/docker.ui:1.0.1
1.0.1: Pulling from joinsunsoft/docker.ui
213ec9aee27d: Pull complete
362df81e5664: Pull complete
c3f864fca442: Pull complete
5a55080a5af0: Pull complete
497ed8376dfb: Pull complete
4642bc86bdfb: Pull complete
af43397a88d3: Pull complete
Digest: sha256:1b70b86be661e931e112d8b59850eeac927966679c52b46064d67df2c489d7a5
Status: Downloaded newer image for joinsunsoft/docker.ui:1.0.1
docker.io/joinsunsoft/docker.ui:1.0.1
[root@localhost ~]#
6.部署docker.ui工具
6.1.创建docker.ui容器
使用docker 的cli命令直接创建docker.ui容器。
docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 8010:8999 joinsunsoft/docker.ui:1.0.1
[root@localhost ~]# docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 8010:8999 joinsunsoft/docker.ui:1.0.1
c8a29bd64c8a36643b843e19fffc176f0fedce5d2955d9a54d8a1b08aace59dc
[root@localhost ~]#
6.2.检查docker.ui容器状态
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c8a29bd64c8a joinsunsoft/docker.ui:1.0.1 "./server" 39 seconds ago Up 38 seconds 0.0.0.0:8010->8999/tcp, :::8010->8999/tcp docker.ui
e4bb13ac643f portainer/portainer-ce:latest "/portainer" 8 days ago Up 10 minutes 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer
edd347b077fb nacos/nacos-server:v2.1.0-slim "bin/docker-startup.…" 3 weeks ago Up 10 minutes 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848-9849->9848-9849/tcp, :::9848-9849->9848-9849/tcp nacos
[root@localhost ~]#
6.3.检查docker.ui容器运行日志
检查docker.ui容器运行日志
[root@localhost ~]# docker logs docker.ui
[2023/12/19 02:45:24 UTC 971] [INFO][gohutool.docker4go.ui] (main.initEndpointFile:155) unix Docker Endpoint is attached
[2023/12/19 02:45:24 UTC 975] [INFO][gohutool.docker4go.ui] (main.main:71) Database is load.
[2023/12/19 02:45:24 UTC 976] [INFO][gohutool.docker4go.ui] (main.main:91) Start docker-ui-v1.0.0 now ....
[2023/12/19 02:45:24 UTC 977] [INFO][gohutool.docker4go.ui] (main.startHttpServer:319) Starting HTTP server on [::]:8999
[root@localhost ~]#
7.访问docker.ui
访问地址:http://192.168.159.201:8010/login.html 初始用户名/密码 ginghan/123456