Docker镜像创建
-
创建dockerflie文件
# 最低版本go的依赖
FROM golang:1.17.7
# 配置模块代理
ENV GOPROXY=https://goproxy.cn,direct
# 复制文件目录下的所有代码
ADD . /whygo
#默认进入文件目录
WORKDIR /whygo
# 复制代码
ADD /whygo/go.mod .
ADD /whygo/go.sum .
# 下载依赖
RUN go mod download
# 运行命令,安装依赖
# 例如 RUN npm install && cd /app && mkdir logs
# ADD ./whygo .
ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
# RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。
# 构建exe文件,名字为demo
RUN go build -tags netgo -o demo
# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
# 默认运行 demo
ENTRYPOINT [ "./demo" ]
- 构建镜像
编译命令:
docker build -t test:v1 .
-t
设置镜像名字和版本号 - 运行容器
运行docker run -p 8090:8080 --name test-hello test:v1
-p
映射容器内端口到宿主机,8090端口映射为实机8080端口
--name
设置运行容器的名字为:test-hello
-d
后台运行
Docker中Mysql创建
首先运行容器:docker run -dit --name db -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
端口映射3306为主机3306设置密码为root,容器命名为:db。名字后面的命令为设置编码,防止中文乱码。
主机导入文件到Docker的命令 docker cp f:\go_study\whygo\douyin.sql db:/douyin.sql
从目录f:\go_study\whygo\douyin.sql导入到db容器中,在容器db中目录为:/douyin.sql\
-
首先查看容器id:
docker ps
-
进入容器命令:
docker exec -it *容器id** /bin/bash
-
查看容器中文件的命令:
ls
. 看看文件拷贝成功没有. -
进入Mysql:
mysql -uroot -p
然后输入密码之前设置的密码:root -
运行sql文件:
source douyin.sql
Mysql常用相关命令
use abc;
设置数据库编码
show databases;
查看所有的数据库
create database test;
创建一个叫test的数据库
drop database test;
删除一个叫test的数据库
use test
选中库 ,在建表之前必须要选择数据库
show tables
在选中的数据库之中查看所有的表
create table
表名 (字段1 类型, 字段2 类型);
desc 表名;
查看所在的表的字段
drop table 表名;
删除表
show create databases 库名;
查看创建库的详细信息\
Compose的创建
version: '3.9' #compose版本,一般是3.x
services:
server:
image: douyin:v1
build: .
volumes: #讲当前目录挂载到/whygo
- ./:/whygo
network_mode: service:mysql #依赖容器mysql,必须先运行前置依赖
depends_on: #依赖容器,必须先运行前置依赖容器
- mysql
stdin_open: true #不知道是啥
tty: true #不知道是啥
environment:
- TZ=Asia/Shanghai #设置容器时间为北京时间
mysql:
image: mysql:5.6 #使用的镜像为mysql:5.6版本
ports: #将容器端口暴露
- 3306:3306
- 8080:8080
volumes:
- ./docker_data/mysql:/db #将当前目录/docker_data挂载到容器db
Docker常用相关命令
docker ps
查看当前运行中的容器
docker images
查看镜像列表
docker rm container-id
删除指定 id 的容器
docker stop/start container-id
停止/启动指定 id 的容器
docker rmi image-id
删除指定 id 的镜像
docker volume ls
查看 volume 列表
docker network ls
查看网络列表
Docker打开闪退,运行如下命令,重启。
netsh winsock reset
- 我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿。