docker基础使用

 docker基础命令

docker search xxxx                                   搜索xxxx镜像

docker pull xxxx                                        下载xxxx镜像,版本号可以自己加,默认拉取最新的

docker images                                           查看本地镜像

ctrl+p+q                                                     退出容器

docker ps :                                                查看当前运行的容器信息(上面的退出方式就会默认关闭容器)

docker ps -a :                                            查看所有的容器

docker start [容器ID/名称]                         启动容器

docker exec -it [容器ID/名称] /bin/bash     进入容器

docker rm -f [容器ID/名称]                         删除容器

centos镜像(并安装jdk)

建议直接使用下面的拉取java:8镜像,那样更简单

docker pull centos #版本号可以自己加,默认拉取最新的

创建容器

容器是基于镜像创建的,执行镜像生成容器,方可进入容器
启动容器命令: docker run <相关参数> <镜像 ID> <初始命令>

docker run --name xxx --restart=always -i -t -v 本地文件夹路径:/mnt/software/ -p 8081:8081 镜像ID /bin/bash

参数解析 

-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

-p:将第二个端口暴露到第一个端口上,格式:8081:8080(将容器的8080端口暴露在8081上)

--name:容器名称

--restart=always:自启动
/bin/bash:一旦容器启动,需要执行的命令,当前使用 "/bin/bash", 表示启动后直接进bash shell

/mnt/software是centos的容器里面的目录文件,这里的意思是让本地的某个文件夹路径和容器里的/mnt/software互通

在容器内部安装jdk1.8

下载 tomcat和jdk的 tar包,通过ftp工具上传到宿主服务器的/root/software/文件下,因为前面做了挂载,所以待会进入docker容器里的/mnt/software/文件夹下也是可以看到的

进入centos中的/mnt/software文件夹,

解压:

tar -zxvf jdk-8u202-linux-x64.tar.gz

mv jdk1.8.0_202/ /opt/jdk

设置java 环境变量,配置profile

vi /etc/profile

在文件末尾加上

输入i进入插入模式

JAVA_HOME=/opt/jdk/
JAVA_BIN=/opt/jdk/bin
JRE_HOME=/opt/jdk/jre
CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
export  JAVA_HOME  JAVA_BIN JRE_HOME  PATH  CLASSPATH

点击esc退出,输入:wq保存

使得配置立马有效

source /etc/profile

配置 bashrc

vi ~/.bashrc

在文件末尾加上

export JAVA_HOME=/opt/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使得配置立马有效

source ~/.bashrc

查看成功: java -version

复制jar包到另一个目录

mkdir /opt/jar/

mv mnt/software/demo.jar /opt/jar/demo.jar

启动jar包

cd /opt/jar/ 

java -jar demo.jar

mysql5.5

docker pull mysql:5.5

 第一次启动mysql

让本地1105端口替代容器的3306端口,并设置密码为123456

docker run --restart=always --name mysql -p 1105:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5

redis

docker pull redis 

 启动redis

docker run --restart=always -d --name redis -p 6379:6379 -d 7614ae9453d1

java8

默认安装好jdk1.8的系统镜像,不用下载centos镜像自己再安装jdk了

docker pull java:8 

启动java8并启动jar包

docker run --name java --restart=always -i -t -v C:\Users\lwh\Desktop\docker:/data/jars/ -p 8081:8081 -d d23bdf5b1b1b /bin/bash -c 'java -jar /data/jars/demo.jar' 

gitlab 

docker pull gitlab/gitlab-ce:latest

启动Gitlab容器 

docker run -itd -p 9980:80 -p 9922:22 -v D:/docker/gitlab/etc:/etc/gitlab -v D:/docker/gitlab/log:/var/log/gitlab -v D:/docker/gitlab/opt:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce

进入镜像后,需要修改2个配置文件

#这个是ssh连接的方法,如果不用可以不改

#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
 
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.249.132' 
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.249.132'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922 

# 修改http和ssh配置

#这里主要是修改host和port,本地访问host改为127.0.0.1,port改为docker run时暴露的端口9980,https没有可以为false
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
 
  gitlab:
    host: 192.168.249.132
    port: 9980 # 这里改为9980
    https: false 

修改完配置文件后需要重启gitlab

#重启gitlab

gitlab-ctl restart

第一次部署可以顺便修改一下root的密码

# 进入控制台
gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为AAbb11..
user.password='AAbb11..'
# 保存
user.save!

通过浏览器访问项目

http://192.168.249.132:9980

可能会出现如下报错

一般稍等一会就可以了,运行内存保持在4G以上,不然也会出这个问题

打包镜像 

docker build -t 镜像名称 . #注意最后还有一个.(在不同系统甚至不同物理机上再导入会报错,不推荐)

docker commit 容器ID 镜像名:版本号           #容器打包成镜像(版本号尽量是数字)

docker save -o 文件名.tar 镜像名:版本号      #镜像导出

docker load -i 文件名.tar                                #镜像导入

Windows启动docker报错 

问题出在Hyper-V已禁用或Hypervisor代理未运行。 

方案一 (如果完全禁用或未安装Hyper-V)
docker desktop 基于windows hyper-v,必须确保hyper-v组件已经开启。可通过如下PowerShell (管理员身份)命令启动。

  1. 以管理员身份打开CMD
  2. 启用Hyper-V
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

 或者在启用和关闭windows功能中先禁用Hyper-V,重启后再开启。

如果上述cmd代码执行报错:

将下面内容复制到文本文件中,然后将文件命名为Hyper-V.cmd,然后以管理员身份运行即可,运行完成后重启电脑。

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

  

勾选Hyper-V即可 

方案二 (如果Hyper-V功能已启用但不起作用)

hyper-v组件开启后,需确保其守护进程自动运行(我问题出在这里,守护进程没有运行),可通过如下PowerShell(管理员身份) 命令启动:

bcdedit /set hypervisorlaunchtype auto

重启电脑,启动docker desktop,即可正常运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值