一、 实现一个自定义的web容器服务
-
拉取nginx镜像
sudo docker pull nginx
-
docker images查看本地镜像列表,确认成功拉取nginx镜像
-
创建容器
sudo docker run -it nginx /bin/bash
-
先将default.conf复制出来修改,再将原文件覆盖。监听的端口号从80改为了2400,Web默认目录,从/usr/share/nginx/html改为/html/
sudo docker cp 74ad922d8a8e:/etc/nginx/conf.d/default.conf .
-
创建dockerfile文件,dockerfile文件内容如下
from nginx #base image copy default.conf /etc/nginx/conf.d/ # cover file copy index.html /html/ # copy my file maintainer fwh<https://www.cnblogs.com/fwhdbk/> #author expose 8000 #expose port 8000
-
构建镜像
sudo docker build -t mynginx .
-
创建容器验证结果
sudo docker run --name my_nginx -p 8000:2400 -d mynginx
-
访问浏览器
二、实现一个自定义的数据库容器服务
-
pull一个mysql镜像
sudo docker pull mysql
-
创建命令文档
- dokerfile:
FROM mysql #作者信息 MAINTAINER by fwh<https://www.cnblogs.com/fwhdbk/> #设置root密码 ENV MYSQL_ROOT_PASSWORD 6666 #设置不可免密登录 ENV MYSQL_ALLOW_EMPTY_PASSWORD no ENV MYSQL_DATABASE docker_mysql #为docker_mysql创建新用户,该用户被授予操作docker_mysql的所以权限 ENV MYSQL_USER=docker ENV MYSQL_PASSWORD=123456 #将所需文件放到容器中 COPY schema.sql /mysql/schema.sql
- schema.sql
-- 创建数据库 create database `docker_mysql` default character set utf8 collate utf8_general_ci; use docker_mysql; -- 建表 DROP TABLE IF EXISTS test; CREATE TABLE test ( `id` bigint(20) NOT NULL, `name` varchar(255) DEFAULT "", `email` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 设置数据库引擎和字符编码规则(UTF-8) -- 插入数据 INSERT INTO test (`id`, `name`,`email`) VALUES (100,'john','www.han@example.com');
- dokerfile:
-
创建镜像
sudo docker build -t mysql:fwh .
-
创建容器
sudo docker run --name testsql -p 8000:2400 -d mysql:fwh
-
进入容器
sudo docker ps
sudo docker exec -it 38a50a964f50 /bin/bash
-
root登录
mysql -u root -p
-
进入数据库
docker_mysql
,并利用source /mysql/schema.sql
进行建表
-
使用dockfile中创建的docker用户进行登录
mysql -u docker -p
-
对数据库docker_mysql 插入数据
-
删除第一条数据