前几天构筑开发环境,使用了一些docker命令,随手记下来。
(bash>开头的操作为容器中,其他的均是在宿主机器上)
# 下载rhel8的镜像文件
docker pull roboxes/rhel8 #获取镜像
docker images #镜像一览
docker run -u root -it roboxes/rhel8 base #启动(以root身份)
bash>cat /etc/redhat-release #确认版本
docker ps #正在运行的容器列表
docker stop containerID #停止容器
docker exec -it 77xxx /bin/bash #进入正在运行的容器
bash>yum install -y vim #安装vim -y 指的是中途的确认都选yes
bash>yum clean all
bash>yum repolist #显示repo的list
bash>yum install java-1.8.0-openjdk #安装 java
bash>java -version #查看java版本
#保存操作
docker commit containerID imageName:version #imageName:version #由自己指定
例:
docker commit xxxx postgre:01 -m="for test" -a="liu"
#导出镜像
docker save xxxxImageId> xxxx.tar #将docker 镜像文件保持到tar中。
ls -sh xxxx.tar
#加载镜像
docker load --input xxxx.tar #加载tar文件
###宿主机和容器间相互复制文件/文件夹
docker ps /xxx/xxxx containerID:/xxx/xxx #宿主机->容器
docker ps containerID:/xxx/xxx /xxx/xxx #容器->宿主机
参考url:https://blog.csdn.net/weixin_42165508/article/details/111904560
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub.docker.com/"
]
docker search oracle19c
得到如下结果:
NAME | DESCRIPTION | STARS | OFFICIAL | AUTOMATED |
---|---|---|---|---|
heartu41/oracle19c | Oracle 19.0.3 EE Docker Build For Test | 9 |
......出现多条信息,后面的省略。
dokcer pull heartu41/oracle19c
拉取可能会失败,失败后选取其他仓库。
docker save -o xxx.tar name1:tag1 name2:tag2 name3:tag3
注意:
这种方式load后无需改名,之前是什么名加载后就是什么名
典型用法:
docker build -t ImageName:TagName dir
选项
* -t 给镜像加一个Tag
* ImageName 给镜像起的名称
* TagName 给镜像的Tag名
* Dir Dockerfile所在目录
可参考:【Docker】DockerFile与build命令_Mr.敦的私房菜的博客-CSDN博客_build dockerfile](https://blog.csdn.net/qq_41816702/article/details/125350798)
为了切换到windows containers,需要以管理员身份打开PowerShell终端,执行如下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
windows docker安装了以后,会在
C:\Windows\System32\drivers\etc\hosts
中添加下面两行映射。
# Added by Docker Desktop
127.0.0.1 host.docker.internal
127.0.0.1 gateway.docker.internal
在docker容器中,执行类似下面的ps命令,报找不到ps的错。
ps -ef | grep postgresql
解决方法如下:
apt-get update && apt-get install procps
End!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。