目录标题
0、安装步骤
搜索镜像
拉取镜像
查看镜像
启动镜像
停止容器
移除容器
1、安装Mysql 8.0
(1)查找镜像
#命令
[root@hcz666 home]# docker search mysql
Docker仓库官网地址:https://hub.docker.com/
(2)拉取mysql镜像
#命令
[root@hcz666 home]# docker pull mysql:8.0
(3)运行镜像创建容器
#创建容器命令
[root@hcz666 home]# docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
-----------------------------------------
#命令说明:
-p 12345:3306:将主机的3307端口映射到docker容器的3306端口。
-name mysq:运行服务名字
-V /ggcc/mysql/conf:/etc/mysql/conf.d :将主机/zzyyuse/mysq|录下的conf/my.cnf挂载到容器的/etc/mysql/conf.d
-v /ggcc/mysqlogs/logs: 将主机/zzyyuse/mysq|目 录下的logs 目录挂载到容器的/logs。
-V /ggcc/mysqldata:/var/lib/mysql :将主机lzzyyuse/mysql目录下的data目录挂载到容器的/var/lib/mysql .
-e MYSQL_ ROOT_ PASSWORD=123456: 初始化root用户的密码。.
-d mysql:8.0:后台程序运行mysql8.0
#进入容器命令
[root@hcz666 home]# docker exec -it 8369c02597aa(容器ID) /bin/bash
(4)登录Mysql
#登录命令(前提需要进入容器中)
mysql -uroot -p
(5)授权远程登录访问
#授权命令(创建一个hcz_Docker的用户,密码为123456)
CREATE USER 'hcz_Docker'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'hcz_Docker'@'%';
2、安装Nginx
(1)查找镜像
#命令
[root@hcz666 home]# docker seach nginx
(2)拉取镜像
#命令
[root@hcz666 home]# docker pull nginx
(3)运行镜像创建容器
#创建容器命令
[root@hcz666 home]# docker run -d --name nginx01 -p 6656:80 nginx
#参数说明
-d 后台运行
--name 给容器命名
-p 6656:80 将宿主机的端口6656映射到该容器的80端口
#进入容器命令
[root@hcz666 home]# docker exec -it nginx01 /bin/bash
#查看nginx位置
root@b9dfbd1a1160:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@b9dfbd1a1160:/# cd /etc/nginx/
root@b9dfbd1a1160:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
(4)浏览器访问
#浏览器访问
http://外网IP地址:3334/
注意:这里我又重新创建了一个端口为3334的容器了
(5)部署静态网页
- 第一个会话
#在根目录下传进来一个test.html页面
[root@hcz666 ~]# cat test.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>²¿˰ؔ¶¨ӥ¾²̬θҳµ½Nginxא!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>[root@hcz666 ~]#
[root@hcz666 ~]# ls -l
total 8
-rw-r--r-- 1 root root 25 Aug 10 19:03 hcz.txt
-rw-r--r-- 1 root root 646 Aug 29 14:42 test.html
#该test.html文件在/root目录下
[root@hcz666 ~]# pwd
/root
[root@hcz666 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bed325ebfd51 nginx "/docker-entrypoint.…" 2 hours ago Up 12 minutes 0.0.0.0:6656->80/tcp, :::6656->80/tcp nginx01
8369c02597aa mysql:8.0 "docker-entrypoint.s…" 4 hours ago Up 4 hours 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp mysql
#将该html文件拷贝到/usr/share/nginx/html中
[root@hcz666 ~]# docker cp test.html bed325ebfd51:/usr/share/nginx/html
- 第二个会话
[root@hcz666 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
bed325ebfd51 nginx "/docker-entrypoint.…" 2 hours ago Up 5 seconds 0.0.0.0:6656->8
8369c02597aa mysql:8.0 "docker-entrypoint.s…" 4 hours ago Up 4 hours 33060/tcp, 0.0.
[root@hcz666 home]# docker exec -it nginx01 /bin/bash
#查看nginx目录
root@bed325ebfd51:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@bed325ebfd51:/# cd /usr/share/nginx
root@bed325ebfd51:/usr/share/nginx# ls
html
#进入/usr/share/nginx/html目录下
root@bed325ebfd51:/usr/share/nginx# cd html
#发现有两个html页面,一个为错误页面,另外一个为欢迎页面
root@bed325ebfd51:/usr/share/nginx/html# ls
50x.html index.html
#将自定义test.html页面其拷贝进来
root@bed325ebfd51:/usr/share/nginx/html# ls
50x.html index.html test.html
- 浏览器访问
3、安装Tomcat
(1)查找镜像
#命令
[root@hcz666 home]# docker search tomcat
(2)拉取镜像
#命令
[root@hcz666 home]# docker pull tomcat
(3)运行镜像创建容器
#命令
[root@hcz666 home]# docker run -d -p 6656:8080 --name tomcat01 tomcat
(4)进入容器
#命令
[root@hcz666 home]# docker exec -it tomcat01 /bin/bash
root@3a5b0d6c5f23:/usr/local/tomcat# ls
BUILDING.txt LICENSE README.md RUNNING.txt conf logs temp webapps.dist
CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib native-jni-lib webapps work
root@3a5b0d6c5f23:/usr/local/tomcat# cd webapps.dist/
root@3a5b0d6c5f23:/usr/local/tomcat/webapps.dist# ls
ROOT docs examples host-manager manager
root@3a5b0d6c5f23:/usr/local/tomcat/webapps.dist# cd ROOT/
root@3a5b0d6c5f23:/usr/local/tomcat/webapps.dist/ROOT# ls
RELEASE-NOTES.txt asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.svg
WEB-INF bg-button.png bg-nav.png favicon.ico tomcat.css
root@3a5b0d6c5f23:/usr/local/tomcat/webapps.dist/ROOT# cd ../../
#发现webapps是个空文件夹
root@3a5b0d6c5f23:/usr/local/tomcat# cd webapps
root@3a5b0d6c5f23:/usr/local/tomcat/webapps# ls
#将webapps.dist拷贝到webapps目录下
root@3a5b0d6c5f23:/usr/local/tomcat/webapps# cp -r /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps/
root@3a5b0d6c5f23:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@3a5b0d6c5f23:/usr/local/tomcat/webapps# exit
exit
出现以下问题:
- Linux命令变少了
- webapps是个空文件夹
原因:
- 阿里云镜像默认下载的是最小的镜像,保证最小的运行环境,所有不必要的都剔除掉
(5)浏览器访问
#访问地址
http://外网IP地址:6656/
4、图形化管理工具Portaniner安装
Portaniner是Docker的图形化管理工具,类似的工具还有Rancher(CI/CD再用)
- 下载运行Portaniner镜像并运行,设置本机映射端口为8088
[root@hcz666 home]# docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
94cfa856b2b1: Pull complete
49d59ee0881a: Pull complete
a2300fd28637: Pull complete
Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f
Status: Downloaded newer image for portainer/portainer:latest
6e046839475b2753501d6f7c36eb29584a4a54cb6631c13fabab731296c8033a
[root@hcz666 home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e046839475b portainer/portainer "/portainer" 8 seconds ago Up 5 seconds 0.0.0.0:8088->9000/tcp, :::8088->9000/tcp nervous_jepsen
[root@hcz666 home]#
- 第一次登录设置用户名和密码
- 如果是阿里云服务器记得设置安全组,选择连接本地的Docker,整体界面预览如下图:
- 可以查看所有的镜像