温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker容器的创建运行方式有哪些

发布时间:2021-10-23 17:06:29 来源:亿速云 阅读:161 作者:iii 栏目:web开发

这篇文章主要介绍“Docker容器的创建运行方式有哪些”,在日常操作中,相信很多人在Docker容器的创建运行方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker容器的创建运行方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

方式一:docker run命令方式

docker run --name some-nginx -p 1080:80 -v /some/content:/usr/share/nginx/html -d nginx

参数说明:

--name:定义容器名。

-p:宿主机与容器的端口挂载,格式:宿主机端口:容器内部端口

-v:宿主机目录与容器内目录映射,格式:宿主机目录:容器内部目录

-d:后台执行

执行以上命令就可以啦,这里把容器名取名为some-nginx,把容器的80端口映射到宿主机的1080端口,容器内的/usr/share/nginx/html目录映射到宿主机的/some/content目录,使用的是nginx最新的镜像,镜像部分也可以写成  “nginx:版本”比如“nginx:1.15.1”。

在/some/content创建一个index.html,随便输入个内容。

访问下 ip+1080可以看到请求到nginx了。

Docker容器的创建运行方式有哪些

访问nginx测试

docker run方式在运行简单的容器方面还是比较方便的。

方式二:Dockerfile配置文件构建镜像方式

1.创建一个文件,命名为Dockerfile,输入以下内容。

FROM nginx COPY html /usr/share/nginx/html

FROM nginx 代表以nginx镜像为基础构建我们的镜像。

注意需要先在Dockerfile同目录创建html目录,不然会报错。

Dockerfile文件内可以自定义镜像内容,有很多指令可以用,比如可以在配置容器创建后运行shell脚本等,可以自行查阅,本文仅做一个简单的用法示例入门。

注意:Dockerfile 的指令每执行一次都会在 docker 上新建一层,所以尽量不要写太多层。

2.在Dockerfile同目录下运行命令创建镜像

docker build -t my-nginx-image .

注意最后面有一个点。

3.运行容器

docker run --name some-nginx -p 1080:80 -d my-nginx-image

在html目录里新建一个index.html文件随便输入个内容,访问下 ip+1080可以看到请求到nginx了。

Docker容器的创建运行方式有哪些

访问nginx测试

Dockerfile一般用于自定义镜像,因为是个文件,也比命令的方式更易于保存与团队间共享。

方式三:docker -compose方式

在需要管理多个容器时用以上两种方式都不太适合,不仅要管理每个容器的配置信息,还要处理容器间的关系,这时候就需要docker-compose来做容器编排了。

1.创建一个docker-compose.yml文件,输入以下内容

version: "3" services:   nginx:     image: nginx     container_name: some-nginx     ports:       - "1080:80"     volumes:       - /some/content:/usr/share/nginx/html

在/some/content创建一个index.html,随便输入个内容,等会访问测试。

2.执行启动命令

docker-compose up -d

访问下 ip+1080可以看到请求到nginx了。

Docker容器的创建运行方式有哪些

访问测试

docker-compose.yml文件里可以写多个容器配置信息,有提供各种配置项用于容器编排。

比如我有一个springboot项目,需要打包成jar包然后创建容器运行,需要连接一个数据库容器,最后需要一个nginx容器做请求代理。那么docker-compose.yml文件可以这样写。

version: "3" services:   mysql:     image: mysql:5.7.26     ports:       - "13306:3306"       restart: "always"     container_name: mysql     command:       --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max_connections=1000 --default-storage-engine=INNODB --lower_case_table_names=1 --default-time_zone='+8:00'       --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"     privileged: true         environment:       - MYSQL_ROOT_PASSWORD=123456       - TZ="Asia/Shanghai"     volumes:         - /opt/docker/mysql/conf:/etc/mysql/mysql.conf.d       - /etc/localtime:/etc/localtime       - /opt/docker/mysql/logs:/var/log/mysql       - /opt/docker/mysql/data:/var/lib/mysql   my-server:     image: java:8     restart: "always"     container_name: my-server     environment:       - TZ="Asia/Shanghai"     volumes:         - /opt/my-serve/my-serve-0.0.1-SNAPSHOT.jar:/data/my-serve-0.0.1-SNAPSHOT.jar       - /etc/localtime:/etc/localtime       - /opt/var/logs:/var/logs     entrypoint: java -jar /data/my-serve-0.0.1-SNAPSHOT.jar --server.port=18081   nginx:     image: nginx     container_name: nginx     volumes:       - /opt/my-serve:/home/nginx       - /opt/docker/nginx/conf.d/:/etc/nginx/conf.d/       - /opt/docker/nginx/log/:/var/log/nginx/       - /opt/docker/nginx/html/:/usr/share/nginx/html/     restart: "always"     network_mode: "host"

只要执行 docker-compose up -d 命令就可以把配置文件内的所有容器启动起来,是不是很方便呢。

在实际项目中,一般Dockerfile和docker-compose用得比较多,不过现在Kubernetes越来越火,以后可能Kubernetes也会占领市场也不一定。

到此,关于“Docker容器的创建运行方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI